{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "729d4530",
   "metadata": {},
   "outputs": [],
   "source": [
    "import torch\n",
    "import torch.nn as nn\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import scipy.io\n",
    "from sklearn.model_selection import train_test_split"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "08e91569",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(1, 201)\n",
      "(1, 101)\n",
      "(101, 201)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<Figure size 432x288 with 0 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1080x360 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Load the .mat file\n",
    "mat_data = scipy.io.loadmat('Allen_Cahn.mat')\n",
    "\n",
    "# Following is the code to plot the data u vs x and t. u is 256*100\n",
    "# matrix. Use first 75 columns for training and 25 for testing :)\n",
    "\n",
    "# Access the variables stored in the .mat file\n",
    "# The variable names in the .mat file become keys in the loaded dictionary\n",
    "x = mat_data['x']\n",
    "t = mat_data['t']\n",
    "u = mat_data['u']\n",
    "\n",
    "# Use the loaded variables as needed\n",
    "print(x.shape)\n",
    "print(t.shape)\n",
    "print(u.shape)\n",
    "\n",
    "X, T = np.meshgrid(x, t)\n",
    "# Define custom color levels\n",
    "c_levels = np.linspace(np.min(u), np.max(u), 100)\n",
    "\n",
    "# Plot the contour\n",
    "plt.figure()\n",
    "plt.figure(figsize=(15, 5))\n",
    "plt.contourf(T, X, u, levels=c_levels, cmap='coolwarm')\n",
    "plt.xlabel('t')\n",
    "plt.ylabel('x')\n",
    "plt.title('Allen-cahn-Equation')\n",
    "plt.colorbar()  # Add a colorbar for the contour levels\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "ddc2111e",
   "metadata": {},
   "outputs": [],
   "source": [
    "import torch\n",
    "import torch.nn as nn\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import scipy.io\n",
    "\n",
    "\n",
    "# Define the GRU model\n",
    "class GRU(nn.Module):\n",
    "    def __init__(self, input_size, hidden_size, output_size):\n",
    "        super(GRU, self).__init__()\n",
    "\n",
    "        self.hidden_size = hidden_size\n",
    "\n",
    "        self.gru = nn.GRU(input_size, hidden_size, batch_first=True)\n",
    "        self.fc = nn.Linear(hidden_size, output_size)\n",
    "\n",
    "    def forward(self, x, hidden):\n",
    "        output, hidden = self.gru(x, hidden)\n",
    "        output = self.fc(output)\n",
    "        return output, hidden\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "bd76b85c",
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import scipy.io\n",
    "from sklearn.model_selection import train_test_split\n",
    "\n",
    "# Load the .mat file\n",
    "mat_data = scipy.io.loadmat('X.mat')\n",
    "\n",
    "X = mat_data['X']\n",
    "\n",
    "mat_data1 = scipy.io.loadmat('y_pred.mat')\n",
    "\n",
    "u1 = mat_data1['y_pred']\n",
    "\n",
    "np.set_printoptions(threshold=np.inf)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "7d291390",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<torch._C.Generator at 0x7ffbf007a7b0>"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Set random seed for reproducibility\n",
    "torch.manual_seed(42)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "ee997f1e",
   "metadata": {},
   "outputs": [],
   "source": [
    "u1 = u1.reshape(101, 201)\n",
    "u1_new = u1.T"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "47f45445",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Figure size 432x288 with 0 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1080x360 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import scipy.io\n",
    "from sklearn.model_selection import train_test_split\n",
    "\n",
    "\n",
    "X, T = np.meshgrid(x, t)\n",
    "\n",
    "# # Define custom color levels\n",
    "c_levels = np.linspace(np.min(u1_new),  np.max(u1_new), 100)\n",
    "\n",
    "# Plot the contour\n",
    "plt.figure()\n",
    "plt.figure(figsize=(15, 5))\n",
    "plt.contourf(T, X, u1_new.T, levels=c_levels, cmap='coolwarm')\n",
    "plt.xlabel('t')\n",
    "plt.ylabel('x')\n",
    "plt.title('Allen-cahn-Equation')\n",
    "plt.colorbar()  # Add a colorbar for the contour levels\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "7d7be168",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Toy problem data\n",
    "input_size = 201  # number of columns in a dataset\n",
    "hidden_size = 32  # number of neurons\n",
    "output_size = 201\n",
    "sequence_length = 80  # number of sequences/ number of rows\n",
    "batch_size = 1\n",
    "num_epochs = 20000"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "d8ae5671",
   "metadata": {},
   "outputs": [],
   "source": [
    "# data = scipy.io.loadmat('y_pred.mat')\n",
    "u1 = u1_new\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "5928f808",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "test data shape (201,)\n",
      "input data shape (201, 80)\n",
      "Target data shape (201, 80)\n"
     ]
    }
   ],
   "source": [
    "input_data = u1[:, 0:80]\n",
    "target_data = u1[:, 1:81]\n",
    "\n",
    "test_data = u1[:, 80] ### Change here\n",
    "#test_target = u1[:, 81:101]\n",
    "\n",
    "print(\"test data shape\", test_data.shape)\n",
    "#print(\"test target shape\", test_target.shape)\n",
    "\n",
    "print(\"input data shape\",input_data.shape)\n",
    "print(\"Target data shape\",target_data.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "c22cbe9f",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "input tensor shape torch.Size([1, 80, 201])\n",
      "Target tensor shape torch.Size([1, 80, 201])\n"
     ]
    }
   ],
   "source": [
    "# Convert data to tensors\n",
    "input_tensor = torch.tensor(input_data.T).view(batch_size, sequence_length, input_size).float()\n",
    "target_tensor = torch.tensor(target_data.T).view(batch_size, sequence_length, output_size).float()\n",
    "\n",
    "print(\"input tensor shape\",input_tensor.shape)\n",
    "print(\"Target tensor shape\",target_tensor.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "5eda88e2",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Convert test data to tensors\n",
    "test_tensor = torch.tensor(test_data.T).view(batch_size, 1, input_size).float()\n",
    "#test_target_tensor = torch.tensor(test_target.T).view(batch_size, 20, output_size).float()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "144e7989",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 10/20000, Loss: 0.05016448\n",
      "Epoch: 20/20000, Loss: 0.01982646\n",
      "Epoch: 30/20000, Loss: 0.00723215\n",
      "Epoch: 40/20000, Loss: 0.00368744\n",
      "Epoch: 50/20000, Loss: 0.00264367\n",
      "Epoch: 60/20000, Loss: 0.00213303\n",
      "Epoch: 70/20000, Loss: 0.00181000\n",
      "Epoch: 80/20000, Loss: 0.00160905\n",
      "Epoch: 90/20000, Loss: 0.00143314\n",
      "Epoch: 100/20000, Loss: 0.00126970\n",
      "Epoch: 110/20000, Loss: 0.00111136\n",
      "Epoch: 120/20000, Loss: 0.00096001\n",
      "Epoch: 130/20000, Loss: 0.00082346\n",
      "Epoch: 140/20000, Loss: 0.00118757\n",
      "Epoch: 150/20000, Loss: 0.00064623\n",
      "Epoch: 160/20000, Loss: 0.00054546\n",
      "Epoch: 170/20000, Loss: 0.00046255\n",
      "Epoch: 180/20000, Loss: 0.00039713\n",
      "Epoch: 190/20000, Loss: 0.00035525\n",
      "Epoch: 200/20000, Loss: 0.00031833\n",
      "Epoch: 210/20000, Loss: 0.00029091\n",
      "Epoch: 220/20000, Loss: 0.00026849\n",
      "Epoch: 230/20000, Loss: 0.00025083\n",
      "Epoch: 240/20000, Loss: 0.00027622\n",
      "Epoch: 250/20000, Loss: 0.00048668\n",
      "Epoch: 260/20000, Loss: 0.00022955\n",
      "Epoch: 270/20000, Loss: 0.00022358\n",
      "Epoch: 280/20000, Loss: 0.00020658\n",
      "Epoch: 290/20000, Loss: 0.00019338\n",
      "Epoch: 300/20000, Loss: 0.00018315\n",
      "Epoch: 310/20000, Loss: 0.00017608\n",
      "Epoch: 320/20000, Loss: 0.00016877\n",
      "Epoch: 330/20000, Loss: 0.00016258\n",
      "Epoch: 340/20000, Loss: 0.00015716\n",
      "Epoch: 350/20000, Loss: 0.00024926\n",
      "Epoch: 360/20000, Loss: 0.00033486\n",
      "Epoch: 370/20000, Loss: 0.00014544\n",
      "Epoch: 380/20000, Loss: 0.00016567\n",
      "Epoch: 390/20000, Loss: 0.00013312\n",
      "Epoch: 400/20000, Loss: 0.00012871\n",
      "Epoch: 410/20000, Loss: 0.00012294\n",
      "Epoch: 420/20000, Loss: 0.00011728\n",
      "Epoch: 430/20000, Loss: 0.00011294\n",
      "Epoch: 440/20000, Loss: 0.00010838\n",
      "Epoch: 450/20000, Loss: 0.00010420\n",
      "Epoch: 460/20000, Loss: 0.00010082\n",
      "Epoch: 470/20000, Loss: 0.00021326\n",
      "Epoch: 480/20000, Loss: 0.00030910\n",
      "Epoch: 490/20000, Loss: 0.00010324\n",
      "Epoch: 500/20000, Loss: 0.00010206\n",
      "Epoch: 510/20000, Loss: 0.00009246\n",
      "Epoch: 520/20000, Loss: 0.00008218\n",
      "Epoch: 530/20000, Loss: 0.00007849\n",
      "Epoch: 540/20000, Loss: 0.00007575\n",
      "Epoch: 550/20000, Loss: 0.00007266\n",
      "Epoch: 560/20000, Loss: 0.00007017\n",
      "Epoch: 570/20000, Loss: 0.00006776\n",
      "Epoch: 580/20000, Loss: 0.00006556\n",
      "Epoch: 590/20000, Loss: 0.00006412\n",
      "Epoch: 600/20000, Loss: 0.00021744\n",
      "Epoch: 610/20000, Loss: 0.00024426\n",
      "Epoch: 620/20000, Loss: 0.00006491\n",
      "Epoch: 630/20000, Loss: 0.00008337\n",
      "Epoch: 640/20000, Loss: 0.00005864\n",
      "Epoch: 650/20000, Loss: 0.00005890\n",
      "Epoch: 660/20000, Loss: 0.00005478\n",
      "Epoch: 670/20000, Loss: 0.00005256\n",
      "Epoch: 680/20000, Loss: 0.00005080\n",
      "Epoch: 690/20000, Loss: 0.00004950\n",
      "Epoch: 700/20000, Loss: 0.00004832\n",
      "Epoch: 710/20000, Loss: 0.00004726\n",
      "Epoch: 720/20000, Loss: 0.00004628\n",
      "Epoch: 730/20000, Loss: 0.00004536\n",
      "Epoch: 740/20000, Loss: 0.00004636\n",
      "Epoch: 750/20000, Loss: 0.00052292\n",
      "Epoch: 760/20000, Loss: 0.00008566\n",
      "Epoch: 770/20000, Loss: 0.00010275\n",
      "Epoch: 780/20000, Loss: 0.00005391\n",
      "Epoch: 790/20000, Loss: 0.00004799\n",
      "Epoch: 800/20000, Loss: 0.00004223\n",
      "Epoch: 810/20000, Loss: 0.00004131\n",
      "Epoch: 820/20000, Loss: 0.00004019\n",
      "Epoch: 830/20000, Loss: 0.00003957\n",
      "Epoch: 840/20000, Loss: 0.00003888\n",
      "Epoch: 850/20000, Loss: 0.00003829\n",
      "Epoch: 860/20000, Loss: 0.00003772\n",
      "Epoch: 870/20000, Loss: 0.00003718\n",
      "Epoch: 880/20000, Loss: 0.00003668\n",
      "Epoch: 890/20000, Loss: 0.00003630\n",
      "Epoch: 900/20000, Loss: 0.00005197\n",
      "Epoch: 910/20000, Loss: 0.00022097\n",
      "Epoch: 920/20000, Loss: 0.00004272\n",
      "Epoch: 930/20000, Loss: 0.00008590\n",
      "Epoch: 940/20000, Loss: 0.00004015\n",
      "Epoch: 950/20000, Loss: 0.00004244\n",
      "Epoch: 960/20000, Loss: 0.00003653\n",
      "Epoch: 970/20000, Loss: 0.00003500\n",
      "Epoch: 980/20000, Loss: 0.00003424\n",
      "Epoch: 990/20000, Loss: 0.00003342\n",
      "Epoch: 1000/20000, Loss: 0.00003303\n",
      "Epoch: 1010/20000, Loss: 0.00003259\n",
      "Epoch: 1020/20000, Loss: 0.00003218\n",
      "Epoch: 1030/20000, Loss: 0.00003179\n",
      "Epoch: 1040/20000, Loss: 0.00003142\n",
      "Epoch: 1050/20000, Loss: 0.00003124\n",
      "Epoch: 1060/20000, Loss: 0.00005862\n",
      "Epoch: 1070/20000, Loss: 0.00006291\n",
      "Epoch: 1080/20000, Loss: 0.00007743\n",
      "Epoch: 1090/20000, Loss: 0.00006483\n",
      "Epoch: 1100/20000, Loss: 0.00004119\n",
      "Epoch: 1110/20000, Loss: 0.00003782\n",
      "Epoch: 1120/20000, Loss: 0.00003245\n",
      "Epoch: 1130/20000, Loss: 0.00003098\n",
      "Epoch: 1140/20000, Loss: 0.00002983\n",
      "Epoch: 1150/20000, Loss: 0.00002922\n",
      "Epoch: 1160/20000, Loss: 0.00002881\n",
      "Epoch: 1170/20000, Loss: 0.00002845\n",
      "Epoch: 1180/20000, Loss: 0.00002808\n",
      "Epoch: 1190/20000, Loss: 0.00002774\n",
      "Epoch: 1200/20000, Loss: 0.00002740\n",
      "Epoch: 1210/20000, Loss: 0.00002712\n",
      "Epoch: 1220/20000, Loss: 0.00003337\n",
      "Epoch: 1230/20000, Loss: 0.00082218\n",
      "Epoch: 1240/20000, Loss: 0.00014424\n",
      "Epoch: 1250/20000, Loss: 0.00008687\n",
      "Epoch: 1260/20000, Loss: 0.00003295\n",
      "Epoch: 1270/20000, Loss: 0.00003700\n",
      "Epoch: 1280/20000, Loss: 0.00002778\n",
      "Epoch: 1290/20000, Loss: 0.00002664\n",
      "Epoch: 1300/20000, Loss: 0.00002620\n",
      "Epoch: 1310/20000, Loss: 0.00002588\n",
      "Epoch: 1320/20000, Loss: 0.00002535\n",
      "Epoch: 1330/20000, Loss: 0.00002499\n",
      "Epoch: 1340/20000, Loss: 0.00002462\n",
      "Epoch: 1350/20000, Loss: 0.00002428\n",
      "Epoch: 1360/20000, Loss: 0.00002396\n",
      "Epoch: 1370/20000, Loss: 0.00002364\n",
      "Epoch: 1380/20000, Loss: 0.00002334\n",
      "Epoch: 1390/20000, Loss: 0.00002316\n",
      "Epoch: 1400/20000, Loss: 0.00004526\n",
      "Epoch: 1410/20000, Loss: 0.00012277\n",
      "Epoch: 1420/20000, Loss: 0.00006695\n",
      "Epoch: 1430/20000, Loss: 0.00005115\n",
      "Epoch: 1440/20000, Loss: 0.00003996\n",
      "Epoch: 1450/20000, Loss: 0.00002885\n",
      "Epoch: 1460/20000, Loss: 0.00002393\n",
      "Epoch: 1470/20000, Loss: 0.00002313\n",
      "Epoch: 1480/20000, Loss: 0.00002251\n",
      "Epoch: 1490/20000, Loss: 0.00002175\n",
      "Epoch: 1500/20000, Loss: 0.00002147\n",
      "Epoch: 1510/20000, Loss: 0.00002110\n",
      "Epoch: 1520/20000, Loss: 0.00002078\n",
      "Epoch: 1530/20000, Loss: 0.00002048\n",
      "Epoch: 1540/20000, Loss: 0.00002019\n",
      "Epoch: 1550/20000, Loss: 0.00001992\n",
      "Epoch: 1560/20000, Loss: 0.00001975\n",
      "Epoch: 1570/20000, Loss: 0.00003226\n",
      "Epoch: 1580/20000, Loss: 0.00046557\n",
      "Epoch: 1590/20000, Loss: 0.00006857\n",
      "Epoch: 1600/20000, Loss: 0.00005222\n",
      "Epoch: 1610/20000, Loss: 0.00002999\n",
      "Epoch: 1620/20000, Loss: 0.00002057\n",
      "Epoch: 1630/20000, Loss: 0.00001970\n",
      "Epoch: 1640/20000, Loss: 0.00001952\n",
      "Epoch: 1650/20000, Loss: 0.00001923\n",
      "Epoch: 1660/20000, Loss: 0.00001854\n",
      "Epoch: 1670/20000, Loss: 0.00001826\n",
      "Epoch: 1680/20000, Loss: 0.00001798\n",
      "Epoch: 1690/20000, Loss: 0.00001770\n",
      "Epoch: 1700/20000, Loss: 0.00001744\n",
      "Epoch: 1710/20000, Loss: 0.00001720\n",
      "Epoch: 1720/20000, Loss: 0.00001700\n",
      "Epoch: 1730/20000, Loss: 0.00001944\n",
      "Epoch: 1740/20000, Loss: 0.00042275\n",
      "Epoch: 1750/20000, Loss: 0.00002290\n",
      "Epoch: 1760/20000, Loss: 0.00006130\n",
      "Epoch: 1770/20000, Loss: 0.00003323\n",
      "Epoch: 1780/20000, Loss: 0.00001911\n",
      "Epoch: 1790/20000, Loss: 0.00001789\n",
      "Epoch: 1800/20000, Loss: 0.00001787\n",
      "Epoch: 1810/20000, Loss: 0.00001641\n",
      "Epoch: 1820/20000, Loss: 0.00001625\n",
      "Epoch: 1830/20000, Loss: 0.00001584\n",
      "Epoch: 1840/20000, Loss: 0.00001557\n",
      "Epoch: 1850/20000, Loss: 0.00001533\n",
      "Epoch: 1860/20000, Loss: 0.00001510\n",
      "Epoch: 1870/20000, Loss: 0.00001489\n",
      "Epoch: 1880/20000, Loss: 0.00001504\n",
      "Epoch: 1890/20000, Loss: 0.00005733\n",
      "Epoch: 1900/20000, Loss: 0.00002666\n",
      "Epoch: 1910/20000, Loss: 0.00003378\n",
      "Epoch: 1920/20000, Loss: 0.00004650\n",
      "Epoch: 1930/20000, Loss: 0.00002636\n",
      "Epoch: 1940/20000, Loss: 0.00001958\n",
      "Epoch: 1950/20000, Loss: 0.00001621\n",
      "Epoch: 1960/20000, Loss: 0.00001453\n",
      "Epoch: 1970/20000, Loss: 0.00001431\n",
      "Epoch: 1980/20000, Loss: 0.00001402\n",
      "Epoch: 1990/20000, Loss: 0.00001373\n",
      "Epoch: 2000/20000, Loss: 0.00001347\n",
      "Epoch: 2010/20000, Loss: 0.00001325\n",
      "Epoch: 2020/20000, Loss: 0.00001305\n",
      "Epoch: 2030/20000, Loss: 0.00001297\n",
      "Epoch: 2040/20000, Loss: 0.00003268\n",
      "Epoch: 2050/20000, Loss: 0.00012055\n",
      "Epoch: 2060/20000, Loss: 0.00002999\n",
      "Epoch: 2070/20000, Loss: 0.00005492\n",
      "Epoch: 2080/20000, Loss: 0.00001787\n",
      "Epoch: 2090/20000, Loss: 0.00001489\n",
      "Epoch: 2100/20000, Loss: 0.00001455\n",
      "Epoch: 2110/20000, Loss: 0.00001377\n",
      "Epoch: 2120/20000, Loss: 0.00001286\n",
      "Epoch: 2130/20000, Loss: 0.00001261\n",
      "Epoch: 2140/20000, Loss: 0.00001231\n",
      "Epoch: 2150/20000, Loss: 0.00001208\n",
      "Epoch: 2160/20000, Loss: 0.00001190\n",
      "Epoch: 2170/20000, Loss: 0.00001172\n",
      "Epoch: 2180/20000, Loss: 0.00001155\n",
      "Epoch: 2190/20000, Loss: 0.00001140\n",
      "Epoch: 2200/20000, Loss: 0.00001127\n",
      "Epoch: 2210/20000, Loss: 0.00001492\n",
      "Epoch: 2220/20000, Loss: 0.00063418\n",
      "Epoch: 2230/20000, Loss: 0.00016305\n",
      "Epoch: 2240/20000, Loss: 0.00005245\n",
      "Epoch: 2250/20000, Loss: 0.00001739\n",
      "Epoch: 2260/20000, Loss: 0.00001698\n",
      "Epoch: 2270/20000, Loss: 0.00001522\n",
      "Epoch: 2280/20000, Loss: 0.00001178\n",
      "Epoch: 2290/20000, Loss: 0.00001185\n",
      "Epoch: 2300/20000, Loss: 0.00001139\n",
      "Epoch: 2310/20000, Loss: 0.00001110\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 2320/20000, Loss: 0.00001091\n",
      "Epoch: 2330/20000, Loss: 0.00001073\n",
      "Epoch: 2340/20000, Loss: 0.00001059\n",
      "Epoch: 2350/20000, Loss: 0.00001045\n",
      "Epoch: 2360/20000, Loss: 0.00001064\n",
      "Epoch: 2370/20000, Loss: 0.00004115\n",
      "Epoch: 2380/20000, Loss: 0.00002473\n",
      "Epoch: 2390/20000, Loss: 0.00002633\n",
      "Epoch: 2400/20000, Loss: 0.00003300\n",
      "Epoch: 2410/20000, Loss: 0.00001524\n",
      "Epoch: 2420/20000, Loss: 0.00001127\n",
      "Epoch: 2430/20000, Loss: 0.00001043\n",
      "Epoch: 2440/20000, Loss: 0.00001046\n",
      "Epoch: 2450/20000, Loss: 0.00001262\n",
      "Epoch: 2460/20000, Loss: 0.00014430\n",
      "Epoch: 2470/20000, Loss: 0.00008881\n",
      "Epoch: 2480/20000, Loss: 0.00001126\n",
      "Epoch: 2490/20000, Loss: 0.00002056\n",
      "Epoch: 2500/20000, Loss: 0.00001004\n",
      "Epoch: 2510/20000, Loss: 0.00001044\n",
      "Epoch: 2520/20000, Loss: 0.00000998\n",
      "Epoch: 2530/20000, Loss: 0.00000948\n",
      "Epoch: 2540/20000, Loss: 0.00000950\n",
      "Epoch: 2550/20000, Loss: 0.00000925\n",
      "Epoch: 2560/20000, Loss: 0.00000941\n",
      "Epoch: 2570/20000, Loss: 0.00003470\n",
      "Epoch: 2580/20000, Loss: 0.00012415\n",
      "Epoch: 2590/20000, Loss: 0.00008087\n",
      "Epoch: 2600/20000, Loss: 0.00002092\n",
      "Epoch: 2610/20000, Loss: 0.00001407\n",
      "Epoch: 2620/20000, Loss: 0.00001210\n",
      "Epoch: 2630/20000, Loss: 0.00001051\n",
      "Epoch: 2640/20000, Loss: 0.00000956\n",
      "Epoch: 2650/20000, Loss: 0.00000918\n",
      "Epoch: 2660/20000, Loss: 0.00000891\n",
      "Epoch: 2670/20000, Loss: 0.00000878\n",
      "Epoch: 2680/20000, Loss: 0.00000868\n",
      "Epoch: 2690/20000, Loss: 0.00000969\n",
      "Epoch: 2700/20000, Loss: 0.00008489\n",
      "Epoch: 2710/20000, Loss: 0.00006919\n",
      "Epoch: 2720/20000, Loss: 0.00001199\n",
      "Epoch: 2730/20000, Loss: 0.00001036\n",
      "Epoch: 2740/20000, Loss: 0.00001493\n",
      "Epoch: 2750/20000, Loss: 0.00001112\n",
      "Epoch: 2760/20000, Loss: 0.00005322\n",
      "Epoch: 2770/20000, Loss: 0.00001447\n",
      "Epoch: 2780/20000, Loss: 0.00001188\n",
      "Epoch: 2790/20000, Loss: 0.00000895\n",
      "Epoch: 2800/20000, Loss: 0.00000870\n",
      "Epoch: 2810/20000, Loss: 0.00000905\n",
      "Epoch: 2820/20000, Loss: 0.00001241\n",
      "Epoch: 2830/20000, Loss: 0.00006930\n",
      "Epoch: 2840/20000, Loss: 0.00001372\n",
      "Epoch: 2850/20000, Loss: 0.00001037\n",
      "Epoch: 2860/20000, Loss: 0.00000809\n",
      "Epoch: 2870/20000, Loss: 0.00000942\n",
      "Epoch: 2880/20000, Loss: 0.00000908\n",
      "Epoch: 2890/20000, Loss: 0.00001040\n",
      "Epoch: 2900/20000, Loss: 0.00002438\n",
      "Epoch: 2910/20000, Loss: 0.00011222\n",
      "Epoch: 2920/20000, Loss: 0.00006240\n",
      "Epoch: 2930/20000, Loss: 0.00002311\n",
      "Epoch: 2940/20000, Loss: 0.00001290\n",
      "Epoch: 2950/20000, Loss: 0.00001108\n",
      "Epoch: 2960/20000, Loss: 0.00001353\n",
      "Epoch: 2970/20000, Loss: 0.00004919\n",
      "Epoch: 2980/20000, Loss: 0.00002344\n",
      "Epoch: 2990/20000, Loss: 0.00001186\n",
      "Epoch: 3000/20000, Loss: 0.00000891\n",
      "Epoch: 3010/20000, Loss: 0.00000796\n",
      "Epoch: 3020/20000, Loss: 0.00006793\n",
      "Epoch: 3030/20000, Loss: 0.00017639\n",
      "Epoch: 3040/20000, Loss: 0.00003997\n",
      "Epoch: 3050/20000, Loss: 0.00002863\n",
      "Epoch: 3060/20000, Loss: 0.00001831\n",
      "Epoch: 3070/20000, Loss: 0.00001075\n",
      "Epoch: 3080/20000, Loss: 0.00000840\n",
      "Epoch: 3090/20000, Loss: 0.00000753\n",
      "Epoch: 3100/20000, Loss: 0.00000710\n",
      "Epoch: 3110/20000, Loss: 0.00000690\n",
      "Epoch: 3120/20000, Loss: 0.00000669\n",
      "Epoch: 3130/20000, Loss: 0.00000655\n",
      "Epoch: 3140/20000, Loss: 0.00000658\n",
      "Epoch: 3150/20000, Loss: 0.00001701\n",
      "Epoch: 3160/20000, Loss: 0.00012281\n",
      "Epoch: 3170/20000, Loss: 0.00002796\n",
      "Epoch: 3180/20000, Loss: 0.00001250\n",
      "Epoch: 3190/20000, Loss: 0.00000940\n",
      "Epoch: 3200/20000, Loss: 0.00000792\n",
      "Epoch: 3210/20000, Loss: 0.00000631\n",
      "Epoch: 3220/20000, Loss: 0.00000604\n",
      "Epoch: 3230/20000, Loss: 0.00000583\n",
      "Epoch: 3240/20000, Loss: 0.00000574\n",
      "Epoch: 3250/20000, Loss: 0.00000559\n",
      "Epoch: 3260/20000, Loss: 0.00000552\n",
      "Epoch: 3270/20000, Loss: 0.00000601\n",
      "Epoch: 3280/20000, Loss: 0.00005337\n",
      "Epoch: 3290/20000, Loss: 0.00007913\n",
      "Epoch: 3300/20000, Loss: 0.00003230\n",
      "Epoch: 3310/20000, Loss: 0.00002022\n",
      "Epoch: 3320/20000, Loss: 0.00000940\n",
      "Epoch: 3330/20000, Loss: 0.00000613\n",
      "Epoch: 3340/20000, Loss: 0.00000619\n",
      "Epoch: 3350/20000, Loss: 0.00000576\n",
      "Epoch: 3360/20000, Loss: 0.00000528\n",
      "Epoch: 3370/20000, Loss: 0.00000521\n",
      "Epoch: 3380/20000, Loss: 0.00000680\n",
      "Epoch: 3390/20000, Loss: 0.00011206\n",
      "Epoch: 3400/20000, Loss: 0.00008520\n",
      "Epoch: 3410/20000, Loss: 0.00002243\n",
      "Epoch: 3420/20000, Loss: 0.00001040\n",
      "Epoch: 3430/20000, Loss: 0.00000664\n",
      "Epoch: 3440/20000, Loss: 0.00000572\n",
      "Epoch: 3450/20000, Loss: 0.00000498\n",
      "Epoch: 3460/20000, Loss: 0.00000484\n",
      "Epoch: 3470/20000, Loss: 0.00000466\n",
      "Epoch: 3480/20000, Loss: 0.00000452\n",
      "Epoch: 3490/20000, Loss: 0.00000471\n",
      "Epoch: 3500/20000, Loss: 0.00002331\n",
      "Epoch: 3510/20000, Loss: 0.00012302\n",
      "Epoch: 3520/20000, Loss: 0.00002495\n",
      "Epoch: 3530/20000, Loss: 0.00001560\n",
      "Epoch: 3540/20000, Loss: 0.00000955\n",
      "Epoch: 3550/20000, Loss: 0.00000503\n",
      "Epoch: 3560/20000, Loss: 0.00000500\n",
      "Epoch: 3570/20000, Loss: 0.00000467\n",
      "Epoch: 3580/20000, Loss: 0.00000444\n",
      "Epoch: 3590/20000, Loss: 0.00000427\n",
      "Epoch: 3600/20000, Loss: 0.00000494\n",
      "Epoch: 3610/20000, Loss: 0.00004481\n",
      "Epoch: 3620/20000, Loss: 0.00001089\n",
      "Epoch: 3630/20000, Loss: 0.00002944\n",
      "Epoch: 3640/20000, Loss: 0.00001562\n",
      "Epoch: 3650/20000, Loss: 0.00000493\n",
      "Epoch: 3660/20000, Loss: 0.00000452\n",
      "Epoch: 3670/20000, Loss: 0.00000448\n",
      "Epoch: 3680/20000, Loss: 0.00000389\n",
      "Epoch: 3690/20000, Loss: 0.00000377\n",
      "Epoch: 3700/20000, Loss: 0.00000395\n",
      "Epoch: 3710/20000, Loss: 0.00001912\n",
      "Epoch: 3720/20000, Loss: 0.00012697\n",
      "Epoch: 3730/20000, Loss: 0.00000945\n",
      "Epoch: 3740/20000, Loss: 0.00002019\n",
      "Epoch: 3750/20000, Loss: 0.00000840\n",
      "Epoch: 3760/20000, Loss: 0.00000537\n",
      "Epoch: 3770/20000, Loss: 0.00000426\n",
      "Epoch: 3780/20000, Loss: 0.00000399\n",
      "Epoch: 3790/20000, Loss: 0.00000359\n",
      "Epoch: 3800/20000, Loss: 0.00000366\n",
      "Epoch: 3810/20000, Loss: 0.00000818\n",
      "Epoch: 3820/20000, Loss: 0.00017862\n",
      "Epoch: 3830/20000, Loss: 0.00004616\n",
      "Epoch: 3840/20000, Loss: 0.00002038\n",
      "Epoch: 3850/20000, Loss: 0.00000395\n",
      "Epoch: 3860/20000, Loss: 0.00000531\n",
      "Epoch: 3870/20000, Loss: 0.00000398\n",
      "Epoch: 3880/20000, Loss: 0.00000353\n",
      "Epoch: 3890/20000, Loss: 0.00000320\n",
      "Epoch: 3900/20000, Loss: 0.00000329\n",
      "Epoch: 3910/20000, Loss: 0.00002001\n",
      "Epoch: 3920/20000, Loss: 0.00010924\n",
      "Epoch: 3930/20000, Loss: 0.00003452\n",
      "Epoch: 3940/20000, Loss: 0.00001974\n",
      "Epoch: 3950/20000, Loss: 0.00000673\n",
      "Epoch: 3960/20000, Loss: 0.00000526\n",
      "Epoch: 3970/20000, Loss: 0.00000455\n",
      "Epoch: 3980/20000, Loss: 0.00000359\n",
      "Epoch: 3990/20000, Loss: 0.00000320\n",
      "Epoch: 4000/20000, Loss: 0.00000313\n",
      "Epoch: 4010/20000, Loss: 0.00000327\n",
      "Epoch: 4020/20000, Loss: 0.00001382\n",
      "Epoch: 4030/20000, Loss: 0.00018343\n",
      "Epoch: 4040/20000, Loss: 0.00001812\n",
      "Epoch: 4050/20000, Loss: 0.00001429\n",
      "Epoch: 4060/20000, Loss: 0.00000524\n",
      "Epoch: 4070/20000, Loss: 0.00000530\n",
      "Epoch: 4080/20000, Loss: 0.00000349\n",
      "Epoch: 4090/20000, Loss: 0.00000331\n",
      "Epoch: 4100/20000, Loss: 0.00000289\n",
      "Epoch: 4110/20000, Loss: 0.00000282\n",
      "Epoch: 4120/20000, Loss: 0.00000280\n",
      "Epoch: 4130/20000, Loss: 0.00000553\n",
      "Epoch: 4140/20000, Loss: 0.00020146\n",
      "Epoch: 4150/20000, Loss: 0.00006666\n",
      "Epoch: 4160/20000, Loss: 0.00001085\n",
      "Epoch: 4170/20000, Loss: 0.00001197\n",
      "Epoch: 4180/20000, Loss: 0.00000539\n",
      "Epoch: 4190/20000, Loss: 0.00000405\n",
      "Epoch: 4200/20000, Loss: 0.00000345\n",
      "Epoch: 4210/20000, Loss: 0.00000295\n",
      "Epoch: 4220/20000, Loss: 0.00000288\n",
      "Epoch: 4230/20000, Loss: 0.00000339\n",
      "Epoch: 4240/20000, Loss: 0.00003135\n",
      "Epoch: 4250/20000, Loss: 0.00001880\n",
      "Epoch: 4260/20000, Loss: 0.00002873\n",
      "Epoch: 4270/20000, Loss: 0.00001312\n",
      "Epoch: 4280/20000, Loss: 0.00000372\n",
      "Epoch: 4290/20000, Loss: 0.00000291\n",
      "Epoch: 4300/20000, Loss: 0.00000314\n",
      "Epoch: 4310/20000, Loss: 0.00000274\n",
      "Epoch: 4320/20000, Loss: 0.00000258\n",
      "Epoch: 4330/20000, Loss: 0.00000250\n",
      "Epoch: 4340/20000, Loss: 0.00000248\n",
      "Epoch: 4350/20000, Loss: 0.00001228\n",
      "Epoch: 4360/20000, Loss: 0.00019404\n",
      "Epoch: 4370/20000, Loss: 0.00008013\n",
      "Epoch: 4380/20000, Loss: 0.00001208\n",
      "Epoch: 4390/20000, Loss: 0.00001219\n",
      "Epoch: 4400/20000, Loss: 0.00000684\n",
      "Epoch: 4410/20000, Loss: 0.00000366\n",
      "Epoch: 4420/20000, Loss: 0.00000342\n",
      "Epoch: 4430/20000, Loss: 0.00000296\n",
      "Epoch: 4440/20000, Loss: 0.00000268\n",
      "Epoch: 4450/20000, Loss: 0.00000254\n",
      "Epoch: 4460/20000, Loss: 0.00000243\n",
      "Epoch: 4470/20000, Loss: 0.00000237\n",
      "Epoch: 4480/20000, Loss: 0.00000234\n",
      "Epoch: 4490/20000, Loss: 0.00000359\n",
      "Epoch: 4500/20000, Loss: 0.00012396\n",
      "Epoch: 4510/20000, Loss: 0.00009300\n",
      "Epoch: 4520/20000, Loss: 0.00001320\n",
      "Epoch: 4530/20000, Loss: 0.00000550\n",
      "Epoch: 4540/20000, Loss: 0.00000536\n",
      "Epoch: 4550/20000, Loss: 0.00000262\n",
      "Epoch: 4560/20000, Loss: 0.00000273\n",
      "Epoch: 4570/20000, Loss: 0.00000256\n",
      "Epoch: 4580/20000, Loss: 0.00000236\n",
      "Epoch: 4590/20000, Loss: 0.00000227\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 4600/20000, Loss: 0.00000220\n",
      "Epoch: 4610/20000, Loss: 0.00000216\n",
      "Epoch: 4620/20000, Loss: 0.00000213\n",
      "Epoch: 4630/20000, Loss: 0.00000215\n",
      "Epoch: 4640/20000, Loss: 0.00000581\n",
      "Epoch: 4650/20000, Loss: 0.00025325\n",
      "Epoch: 4660/20000, Loss: 0.00001927\n",
      "Epoch: 4670/20000, Loss: 0.00001774\n",
      "Epoch: 4680/20000, Loss: 0.00000745\n",
      "Epoch: 4690/20000, Loss: 0.00000523\n",
      "Epoch: 4700/20000, Loss: 0.00000299\n",
      "Epoch: 4710/20000, Loss: 0.00000237\n",
      "Epoch: 4720/20000, Loss: 0.00000225\n",
      "Epoch: 4730/20000, Loss: 0.00000211\n",
      "Epoch: 4740/20000, Loss: 0.00000208\n",
      "Epoch: 4750/20000, Loss: 0.00000201\n",
      "Epoch: 4760/20000, Loss: 0.00000198\n",
      "Epoch: 4770/20000, Loss: 0.00000206\n",
      "Epoch: 4780/20000, Loss: 0.00001010\n",
      "Epoch: 4790/20000, Loss: 0.00015458\n",
      "Epoch: 4800/20000, Loss: 0.00001410\n",
      "Epoch: 4810/20000, Loss: 0.00001418\n",
      "Epoch: 4820/20000, Loss: 0.00000646\n",
      "Epoch: 4830/20000, Loss: 0.00000334\n",
      "Epoch: 4840/20000, Loss: 0.00000233\n",
      "Epoch: 4850/20000, Loss: 0.00000218\n",
      "Epoch: 4860/20000, Loss: 0.00000211\n",
      "Epoch: 4870/20000, Loss: 0.00000195\n",
      "Epoch: 4880/20000, Loss: 0.00000191\n",
      "Epoch: 4890/20000, Loss: 0.00000231\n",
      "Epoch: 4900/20000, Loss: 0.00004430\n",
      "Epoch: 4910/20000, Loss: 0.00001703\n",
      "Epoch: 4920/20000, Loss: 0.00003211\n",
      "Epoch: 4930/20000, Loss: 0.00001607\n",
      "Epoch: 4940/20000, Loss: 0.00000434\n",
      "Epoch: 4950/20000, Loss: 0.00000246\n",
      "Epoch: 4960/20000, Loss: 0.00000261\n",
      "Epoch: 4970/20000, Loss: 0.00000193\n",
      "Epoch: 4980/20000, Loss: 0.00000187\n",
      "Epoch: 4990/20000, Loss: 0.00000184\n",
      "Epoch: 5000/20000, Loss: 0.00000179\n",
      "Epoch: 5010/20000, Loss: 0.00000175\n",
      "Epoch: 5020/20000, Loss: 0.00000173\n",
      "Epoch: 5030/20000, Loss: 0.00000171\n",
      "Epoch: 5040/20000, Loss: 0.00000169\n",
      "Epoch: 5050/20000, Loss: 0.00000168\n",
      "Epoch: 5060/20000, Loss: 0.00000167\n",
      "Epoch: 5070/20000, Loss: 0.00000208\n",
      "Epoch: 5080/20000, Loss: 0.00004332\n",
      "Epoch: 5090/20000, Loss: 0.00011327\n",
      "Epoch: 5100/20000, Loss: 0.00003397\n",
      "Epoch: 5110/20000, Loss: 0.00000931\n",
      "Epoch: 5120/20000, Loss: 0.00000582\n",
      "Epoch: 5130/20000, Loss: 0.00000313\n",
      "Epoch: 5140/20000, Loss: 0.00000244\n",
      "Epoch: 5150/20000, Loss: 0.00000192\n",
      "Epoch: 5160/20000, Loss: 0.00000185\n",
      "Epoch: 5170/20000, Loss: 0.00000174\n",
      "Epoch: 5180/20000, Loss: 0.00000169\n",
      "Epoch: 5190/20000, Loss: 0.00000166\n",
      "Epoch: 5200/20000, Loss: 0.00000163\n",
      "Epoch: 5210/20000, Loss: 0.00000162\n",
      "Epoch: 5220/20000, Loss: 0.00000162\n",
      "Epoch: 5230/20000, Loss: 0.00000278\n",
      "Epoch: 5240/20000, Loss: 0.00011079\n",
      "Epoch: 5250/20000, Loss: 0.00009110\n",
      "Epoch: 5260/20000, Loss: 0.00001251\n",
      "Epoch: 5270/20000, Loss: 0.00000992\n",
      "Epoch: 5280/20000, Loss: 0.00000388\n",
      "Epoch: 5290/20000, Loss: 0.00000241\n",
      "Epoch: 5300/20000, Loss: 0.00000192\n",
      "Epoch: 5310/20000, Loss: 0.00000192\n",
      "Epoch: 5320/20000, Loss: 0.00000177\n",
      "Epoch: 5330/20000, Loss: 0.00000169\n",
      "Epoch: 5340/20000, Loss: 0.00000164\n",
      "Epoch: 5350/20000, Loss: 0.00000162\n",
      "Epoch: 5360/20000, Loss: 0.00000160\n",
      "Epoch: 5370/20000, Loss: 0.00000159\n",
      "Epoch: 5380/20000, Loss: 0.00000183\n",
      "Epoch: 5390/20000, Loss: 0.00002872\n",
      "Epoch: 5400/20000, Loss: 0.00006973\n",
      "Epoch: 5410/20000, Loss: 0.00001355\n",
      "Epoch: 5420/20000, Loss: 0.00000926\n",
      "Epoch: 5430/20000, Loss: 0.00000407\n",
      "Epoch: 5440/20000, Loss: 0.00000250\n",
      "Epoch: 5450/20000, Loss: 0.00000193\n",
      "Epoch: 5460/20000, Loss: 0.00000182\n",
      "Epoch: 5470/20000, Loss: 0.00000179\n",
      "Epoch: 5480/20000, Loss: 0.00000166\n",
      "Epoch: 5490/20000, Loss: 0.00000163\n",
      "Epoch: 5500/20000, Loss: 0.00000244\n",
      "Epoch: 5510/20000, Loss: 0.00007368\n",
      "Epoch: 5520/20000, Loss: 0.00004608\n",
      "Epoch: 5530/20000, Loss: 0.00000673\n",
      "Epoch: 5540/20000, Loss: 0.00001144\n",
      "Epoch: 5550/20000, Loss: 0.00000608\n",
      "Epoch: 5560/20000, Loss: 0.00000203\n",
      "Epoch: 5570/20000, Loss: 0.00000229\n",
      "Epoch: 5580/20000, Loss: 0.00000176\n",
      "Epoch: 5590/20000, Loss: 0.00000173\n",
      "Epoch: 5600/20000, Loss: 0.00000165\n",
      "Epoch: 5610/20000, Loss: 0.00000161\n",
      "Epoch: 5620/20000, Loss: 0.00000159\n",
      "Epoch: 5630/20000, Loss: 0.00000157\n",
      "Epoch: 5640/20000, Loss: 0.00000154\n",
      "Epoch: 5650/20000, Loss: 0.00000153\n",
      "Epoch: 5660/20000, Loss: 0.00000167\n",
      "Epoch: 5670/20000, Loss: 0.00002310\n",
      "Epoch: 5680/20000, Loss: 0.00020952\n",
      "Epoch: 5690/20000, Loss: 0.00005923\n",
      "Epoch: 5700/20000, Loss: 0.00001443\n",
      "Epoch: 5710/20000, Loss: 0.00000554\n",
      "Epoch: 5720/20000, Loss: 0.00000388\n",
      "Epoch: 5730/20000, Loss: 0.00000243\n",
      "Epoch: 5740/20000, Loss: 0.00000203\n",
      "Epoch: 5750/20000, Loss: 0.00000184\n",
      "Epoch: 5760/20000, Loss: 0.00000171\n",
      "Epoch: 5770/20000, Loss: 0.00000164\n",
      "Epoch: 5780/20000, Loss: 0.00000158\n",
      "Epoch: 5790/20000, Loss: 0.00000155\n",
      "Epoch: 5800/20000, Loss: 0.00000154\n",
      "Epoch: 5810/20000, Loss: 0.00000219\n",
      "Epoch: 5820/20000, Loss: 0.00005950\n",
      "Epoch: 5830/20000, Loss: 0.00002693\n",
      "Epoch: 5840/20000, Loss: 0.00001809\n",
      "Epoch: 5850/20000, Loss: 0.00001387\n",
      "Epoch: 5860/20000, Loss: 0.00000229\n",
      "Epoch: 5870/20000, Loss: 0.00000322\n",
      "Epoch: 5880/20000, Loss: 0.00000181\n",
      "Epoch: 5890/20000, Loss: 0.00000177\n",
      "Epoch: 5900/20000, Loss: 0.00000168\n",
      "Epoch: 5910/20000, Loss: 0.00000159\n",
      "Epoch: 5920/20000, Loss: 0.00000153\n",
      "Epoch: 5930/20000, Loss: 0.00000149\n",
      "Epoch: 5940/20000, Loss: 0.00000147\n",
      "Epoch: 5950/20000, Loss: 0.00000146\n",
      "Epoch: 5960/20000, Loss: 0.00000165\n",
      "Epoch: 5970/20000, Loss: 0.00001632\n",
      "Epoch: 5980/20000, Loss: 0.00012089\n",
      "Epoch: 5990/20000, Loss: 0.00004378\n",
      "Epoch: 6000/20000, Loss: 0.00001086\n",
      "Epoch: 6010/20000, Loss: 0.00000603\n",
      "Epoch: 6020/20000, Loss: 0.00000349\n",
      "Epoch: 6030/20000, Loss: 0.00000236\n",
      "Epoch: 6040/20000, Loss: 0.00000190\n",
      "Epoch: 6050/20000, Loss: 0.00000171\n",
      "Epoch: 6060/20000, Loss: 0.00000159\n",
      "Epoch: 6070/20000, Loss: 0.00000153\n",
      "Epoch: 6080/20000, Loss: 0.00000147\n",
      "Epoch: 6090/20000, Loss: 0.00000143\n",
      "Epoch: 6100/20000, Loss: 0.00000146\n",
      "Epoch: 6110/20000, Loss: 0.00000785\n",
      "Epoch: 6120/20000, Loss: 0.00030029\n",
      "Epoch: 6130/20000, Loss: 0.00002664\n",
      "Epoch: 6140/20000, Loss: 0.00001516\n",
      "Epoch: 6150/20000, Loss: 0.00000394\n",
      "Epoch: 6160/20000, Loss: 0.00000455\n",
      "Epoch: 6170/20000, Loss: 0.00000240\n",
      "Epoch: 6180/20000, Loss: 0.00000177\n",
      "Epoch: 6190/20000, Loss: 0.00000172\n",
      "Epoch: 6200/20000, Loss: 0.00000156\n",
      "Epoch: 6210/20000, Loss: 0.00000149\n",
      "Epoch: 6220/20000, Loss: 0.00000145\n",
      "Epoch: 6230/20000, Loss: 0.00000142\n",
      "Epoch: 6240/20000, Loss: 0.00000139\n",
      "Epoch: 6250/20000, Loss: 0.00000136\n",
      "Epoch: 6260/20000, Loss: 0.00000133\n",
      "Epoch: 6270/20000, Loss: 0.00000131\n",
      "Epoch: 6280/20000, Loss: 0.00000131\n",
      "Epoch: 6290/20000, Loss: 0.00000702\n",
      "Epoch: 6300/20000, Loss: 0.00019519\n",
      "Epoch: 6310/20000, Loss: 0.00002217\n",
      "Epoch: 6320/20000, Loss: 0.00001259\n",
      "Epoch: 6330/20000, Loss: 0.00001030\n",
      "Epoch: 6340/20000, Loss: 0.00000300\n",
      "Epoch: 6350/20000, Loss: 0.00000277\n",
      "Epoch: 6360/20000, Loss: 0.00000201\n",
      "Epoch: 6370/20000, Loss: 0.00000180\n",
      "Epoch: 6380/20000, Loss: 0.00000159\n",
      "Epoch: 6390/20000, Loss: 0.00000150\n",
      "Epoch: 6400/20000, Loss: 0.00000142\n",
      "Epoch: 6410/20000, Loss: 0.00000137\n",
      "Epoch: 6420/20000, Loss: 0.00000133\n",
      "Epoch: 6430/20000, Loss: 0.00000163\n",
      "Epoch: 6440/20000, Loss: 0.00005499\n",
      "Epoch: 6450/20000, Loss: 0.00005968\n",
      "Epoch: 6460/20000, Loss: 0.00001173\n",
      "Epoch: 6470/20000, Loss: 0.00001299\n",
      "Epoch: 6480/20000, Loss: 0.00000307\n",
      "Epoch: 6490/20000, Loss: 0.00000254\n",
      "Epoch: 6500/20000, Loss: 0.00000191\n",
      "Epoch: 6510/20000, Loss: 0.00000182\n",
      "Epoch: 6520/20000, Loss: 0.00000150\n",
      "Epoch: 6530/20000, Loss: 0.00000146\n",
      "Epoch: 6540/20000, Loss: 0.00000138\n",
      "Epoch: 6550/20000, Loss: 0.00000133\n",
      "Epoch: 6560/20000, Loss: 0.00000129\n",
      "Epoch: 6570/20000, Loss: 0.00000126\n",
      "Epoch: 6580/20000, Loss: 0.00000123\n",
      "Epoch: 6590/20000, Loss: 0.00000120\n",
      "Epoch: 6600/20000, Loss: 0.00000118\n",
      "Epoch: 6610/20000, Loss: 0.00000116\n",
      "Epoch: 6620/20000, Loss: 0.00000122\n",
      "Epoch: 6630/20000, Loss: 0.00001231\n",
      "Epoch: 6640/20000, Loss: 0.00013537\n",
      "Epoch: 6650/20000, Loss: 0.00004421\n",
      "Epoch: 6660/20000, Loss: 0.00001081\n",
      "Epoch: 6670/20000, Loss: 0.00000544\n",
      "Epoch: 6680/20000, Loss: 0.00000369\n",
      "Epoch: 6690/20000, Loss: 0.00000172\n",
      "Epoch: 6700/20000, Loss: 0.00000163\n",
      "Epoch: 6710/20000, Loss: 0.00000132\n",
      "Epoch: 6720/20000, Loss: 0.00000124\n",
      "Epoch: 6730/20000, Loss: 0.00000120\n",
      "Epoch: 6740/20000, Loss: 0.00000117\n",
      "Epoch: 6750/20000, Loss: 0.00000113\n",
      "Epoch: 6760/20000, Loss: 0.00000111\n",
      "Epoch: 6770/20000, Loss: 0.00000108\n",
      "Epoch: 6780/20000, Loss: 0.00000107\n",
      "Epoch: 6790/20000, Loss: 0.00000181\n",
      "Epoch: 6800/20000, Loss: 0.00015454\n",
      "Epoch: 6810/20000, Loss: 0.00004665\n",
      "Epoch: 6820/20000, Loss: 0.00002843\n",
      "Epoch: 6830/20000, Loss: 0.00000800\n",
      "Epoch: 6840/20000, Loss: 0.00000489\n",
      "Epoch: 6850/20000, Loss: 0.00000225\n",
      "Epoch: 6860/20000, Loss: 0.00000171\n",
      "Epoch: 6870/20000, Loss: 0.00000151\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 6880/20000, Loss: 0.00000131\n",
      "Epoch: 6890/20000, Loss: 0.00000122\n",
      "Epoch: 6900/20000, Loss: 0.00000116\n",
      "Epoch: 6910/20000, Loss: 0.00000112\n",
      "Epoch: 6920/20000, Loss: 0.00000108\n",
      "Epoch: 6930/20000, Loss: 0.00000105\n",
      "Epoch: 6940/20000, Loss: 0.00000102\n",
      "Epoch: 6950/20000, Loss: 0.00000100\n",
      "Epoch: 6960/20000, Loss: 0.00000107\n",
      "Epoch: 6970/20000, Loss: 0.00003059\n",
      "Epoch: 6980/20000, Loss: 0.00004094\n",
      "Epoch: 6990/20000, Loss: 0.00003562\n",
      "Epoch: 7000/20000, Loss: 0.00000769\n",
      "Epoch: 7010/20000, Loss: 0.00000668\n",
      "Epoch: 7020/20000, Loss: 0.00000399\n",
      "Epoch: 7030/20000, Loss: 0.00000210\n",
      "Epoch: 7040/20000, Loss: 0.00000153\n",
      "Epoch: 7050/20000, Loss: 0.00000138\n",
      "Epoch: 7060/20000, Loss: 0.00000130\n",
      "Epoch: 7070/20000, Loss: 0.00000120\n",
      "Epoch: 7080/20000, Loss: 0.00000115\n",
      "Epoch: 7090/20000, Loss: 0.00000111\n",
      "Epoch: 7100/20000, Loss: 0.00000107\n",
      "Epoch: 7110/20000, Loss: 0.00000104\n",
      "Epoch: 7120/20000, Loss: 0.00000101\n",
      "Epoch: 7130/20000, Loss: 0.00000098\n",
      "Epoch: 7140/20000, Loss: 0.00000096\n",
      "Epoch: 7150/20000, Loss: 0.00000094\n",
      "Epoch: 7160/20000, Loss: 0.00000093\n",
      "Epoch: 7170/20000, Loss: 0.00000507\n",
      "Epoch: 7180/20000, Loss: 0.00018509\n",
      "Epoch: 7190/20000, Loss: 0.00003785\n",
      "Epoch: 7200/20000, Loss: 0.00000846\n",
      "Epoch: 7210/20000, Loss: 0.00000501\n",
      "Epoch: 7220/20000, Loss: 0.00000298\n",
      "Epoch: 7230/20000, Loss: 0.00000176\n",
      "Epoch: 7240/20000, Loss: 0.00000127\n",
      "Epoch: 7250/20000, Loss: 0.00000112\n",
      "Epoch: 7260/20000, Loss: 0.00000104\n",
      "Epoch: 7270/20000, Loss: 0.00000099\n",
      "Epoch: 7280/20000, Loss: 0.00000095\n",
      "Epoch: 7290/20000, Loss: 0.00000092\n",
      "Epoch: 7300/20000, Loss: 0.00000089\n",
      "Epoch: 7310/20000, Loss: 0.00000087\n",
      "Epoch: 7320/20000, Loss: 0.00000085\n",
      "Epoch: 7330/20000, Loss: 0.00000086\n",
      "Epoch: 7340/20000, Loss: 0.00000377\n",
      "Epoch: 7350/20000, Loss: 0.00029459\n",
      "Epoch: 7360/20000, Loss: 0.00005792\n",
      "Epoch: 7370/20000, Loss: 0.00000922\n",
      "Epoch: 7380/20000, Loss: 0.00000837\n",
      "Epoch: 7390/20000, Loss: 0.00000331\n",
      "Epoch: 7400/20000, Loss: 0.00000155\n",
      "Epoch: 7410/20000, Loss: 0.00000153\n",
      "Epoch: 7420/20000, Loss: 0.00000115\n",
      "Epoch: 7430/20000, Loss: 0.00000108\n",
      "Epoch: 7440/20000, Loss: 0.00000100\n",
      "Epoch: 7450/20000, Loss: 0.00000095\n",
      "Epoch: 7460/20000, Loss: 0.00000091\n",
      "Epoch: 7470/20000, Loss: 0.00000088\n",
      "Epoch: 7480/20000, Loss: 0.00000086\n",
      "Epoch: 7490/20000, Loss: 0.00000084\n",
      "Epoch: 7500/20000, Loss: 0.00000095\n",
      "Epoch: 7510/20000, Loss: 0.00002585\n",
      "Epoch: 7520/20000, Loss: 0.00002631\n",
      "Epoch: 7530/20000, Loss: 0.00003894\n",
      "Epoch: 7540/20000, Loss: 0.00000788\n",
      "Epoch: 7550/20000, Loss: 0.00000360\n",
      "Epoch: 7560/20000, Loss: 0.00000225\n",
      "Epoch: 7570/20000, Loss: 0.00000139\n",
      "Epoch: 7580/20000, Loss: 0.00000118\n",
      "Epoch: 7590/20000, Loss: 0.00000102\n",
      "Epoch: 7600/20000, Loss: 0.00000096\n",
      "Epoch: 7610/20000, Loss: 0.00000091\n",
      "Epoch: 7620/20000, Loss: 0.00000088\n",
      "Epoch: 7630/20000, Loss: 0.00000085\n",
      "Epoch: 7640/20000, Loss: 0.00000082\n",
      "Epoch: 7650/20000, Loss: 0.00000080\n",
      "Epoch: 7660/20000, Loss: 0.00000078\n",
      "Epoch: 7670/20000, Loss: 0.00000081\n",
      "Epoch: 7680/20000, Loss: 0.00000566\n",
      "Epoch: 7690/20000, Loss: 0.00025156\n",
      "Epoch: 7700/20000, Loss: 0.00000755\n",
      "Epoch: 7710/20000, Loss: 0.00001364\n",
      "Epoch: 7720/20000, Loss: 0.00000614\n",
      "Epoch: 7730/20000, Loss: 0.00000208\n",
      "Epoch: 7740/20000, Loss: 0.00000173\n",
      "Epoch: 7750/20000, Loss: 0.00000109\n",
      "Epoch: 7760/20000, Loss: 0.00000103\n",
      "Epoch: 7770/20000, Loss: 0.00000092\n",
      "Epoch: 7780/20000, Loss: 0.00000088\n",
      "Epoch: 7790/20000, Loss: 0.00000084\n",
      "Epoch: 7800/20000, Loss: 0.00000081\n",
      "Epoch: 7810/20000, Loss: 0.00000079\n",
      "Epoch: 7820/20000, Loss: 0.00000077\n",
      "Epoch: 7830/20000, Loss: 0.00000083\n",
      "Epoch: 7840/20000, Loss: 0.00000853\n",
      "Epoch: 7850/20000, Loss: 0.00013167\n",
      "Epoch: 7860/20000, Loss: 0.00000713\n",
      "Epoch: 7870/20000, Loss: 0.00001181\n",
      "Epoch: 7880/20000, Loss: 0.00000361\n",
      "Epoch: 7890/20000, Loss: 0.00000190\n",
      "Epoch: 7900/20000, Loss: 0.00000124\n",
      "Epoch: 7910/20000, Loss: 0.00000105\n",
      "Epoch: 7920/20000, Loss: 0.00000090\n",
      "Epoch: 7930/20000, Loss: 0.00000083\n",
      "Epoch: 7940/20000, Loss: 0.00000080\n",
      "Epoch: 7950/20000, Loss: 0.00000077\n",
      "Epoch: 7960/20000, Loss: 0.00000075\n",
      "Epoch: 7970/20000, Loss: 0.00000081\n",
      "Epoch: 7980/20000, Loss: 0.00000538\n",
      "Epoch: 7990/20000, Loss: 0.00019252\n",
      "Epoch: 8000/20000, Loss: 0.00002226\n",
      "Epoch: 8010/20000, Loss: 0.00001014\n",
      "Epoch: 8020/20000, Loss: 0.00000377\n",
      "Epoch: 8030/20000, Loss: 0.00000245\n",
      "Epoch: 8040/20000, Loss: 0.00000130\n",
      "Epoch: 8050/20000, Loss: 0.00000094\n",
      "Epoch: 8060/20000, Loss: 0.00000087\n",
      "Epoch: 8070/20000, Loss: 0.00000081\n",
      "Epoch: 8080/20000, Loss: 0.00000077\n",
      "Epoch: 8090/20000, Loss: 0.00000074\n",
      "Epoch: 8100/20000, Loss: 0.00000073\n",
      "Epoch: 8110/20000, Loss: 0.00000145\n",
      "Epoch: 8120/20000, Loss: 0.00006174\n",
      "Epoch: 8130/20000, Loss: 0.00003058\n",
      "Epoch: 8140/20000, Loss: 0.00001673\n",
      "Epoch: 8150/20000, Loss: 0.00000445\n",
      "Epoch: 8160/20000, Loss: 0.00000265\n",
      "Epoch: 8170/20000, Loss: 0.00000153\n",
      "Epoch: 8180/20000, Loss: 0.00000097\n",
      "Epoch: 8190/20000, Loss: 0.00000087\n",
      "Epoch: 8200/20000, Loss: 0.00000077\n",
      "Epoch: 8210/20000, Loss: 0.00000074\n",
      "Epoch: 8220/20000, Loss: 0.00000071\n",
      "Epoch: 8230/20000, Loss: 0.00000076\n",
      "Epoch: 8240/20000, Loss: 0.00000598\n",
      "Epoch: 8250/20000, Loss: 0.00019502\n",
      "Epoch: 8260/20000, Loss: 0.00003300\n",
      "Epoch: 8270/20000, Loss: 0.00001302\n",
      "Epoch: 8280/20000, Loss: 0.00000326\n",
      "Epoch: 8290/20000, Loss: 0.00000153\n",
      "Epoch: 8300/20000, Loss: 0.00000140\n",
      "Epoch: 8310/20000, Loss: 0.00000108\n",
      "Epoch: 8320/20000, Loss: 0.00000089\n",
      "Epoch: 8330/20000, Loss: 0.00000079\n",
      "Epoch: 8340/20000, Loss: 0.00000075\n",
      "Epoch: 8350/20000, Loss: 0.00000072\n",
      "Epoch: 8360/20000, Loss: 0.00000073\n",
      "Epoch: 8370/20000, Loss: 0.00000284\n",
      "Epoch: 8380/20000, Loss: 0.00017403\n",
      "Epoch: 8390/20000, Loss: 0.00004890\n",
      "Epoch: 8400/20000, Loss: 0.00000681\n",
      "Epoch: 8410/20000, Loss: 0.00000539\n",
      "Epoch: 8420/20000, Loss: 0.00000239\n",
      "Epoch: 8430/20000, Loss: 0.00000113\n",
      "Epoch: 8440/20000, Loss: 0.00000095\n",
      "Epoch: 8450/20000, Loss: 0.00000086\n",
      "Epoch: 8460/20000, Loss: 0.00000076\n",
      "Epoch: 8470/20000, Loss: 0.00000073\n",
      "Epoch: 8480/20000, Loss: 0.00000070\n",
      "Epoch: 8490/20000, Loss: 0.00000068\n",
      "Epoch: 8500/20000, Loss: 0.00000079\n",
      "Epoch: 8510/20000, Loss: 0.00001985\n",
      "Epoch: 8520/20000, Loss: 0.00005736\n",
      "Epoch: 8530/20000, Loss: 0.00003305\n",
      "Epoch: 8540/20000, Loss: 0.00000772\n",
      "Epoch: 8550/20000, Loss: 0.00000325\n",
      "Epoch: 8560/20000, Loss: 0.00000216\n",
      "Epoch: 8570/20000, Loss: 0.00000120\n",
      "Epoch: 8580/20000, Loss: 0.00000094\n",
      "Epoch: 8590/20000, Loss: 0.00000082\n",
      "Epoch: 8600/20000, Loss: 0.00000077\n",
      "Epoch: 8610/20000, Loss: 0.00000073\n",
      "Epoch: 8620/20000, Loss: 0.00000070\n",
      "Epoch: 8630/20000, Loss: 0.00000068\n",
      "Epoch: 8640/20000, Loss: 0.00000070\n",
      "Epoch: 8650/20000, Loss: 0.00000324\n",
      "Epoch: 8660/20000, Loss: 0.00014182\n",
      "Epoch: 8670/20000, Loss: 0.00003565\n",
      "Epoch: 8680/20000, Loss: 0.00000554\n",
      "Epoch: 8690/20000, Loss: 0.00000354\n",
      "Epoch: 8700/20000, Loss: 0.00000155\n",
      "Epoch: 8710/20000, Loss: 0.00000088\n",
      "Epoch: 8720/20000, Loss: 0.00000085\n",
      "Epoch: 8730/20000, Loss: 0.00000082\n",
      "Epoch: 8740/20000, Loss: 0.00000071\n",
      "Epoch: 8750/20000, Loss: 0.00000070\n",
      "Epoch: 8760/20000, Loss: 0.00000094\n",
      "Epoch: 8770/20000, Loss: 0.00001275\n",
      "Epoch: 8780/20000, Loss: 0.00006343\n",
      "Epoch: 8790/20000, Loss: 0.00002268\n",
      "Epoch: 8800/20000, Loss: 0.00000687\n",
      "Epoch: 8810/20000, Loss: 0.00000259\n",
      "Epoch: 8820/20000, Loss: 0.00000122\n",
      "Epoch: 8830/20000, Loss: 0.00000080\n",
      "Epoch: 8840/20000, Loss: 0.00000082\n",
      "Epoch: 8850/20000, Loss: 0.00000070\n",
      "Epoch: 8860/20000, Loss: 0.00000066\n",
      "Epoch: 8870/20000, Loss: 0.00000064\n",
      "Epoch: 8880/20000, Loss: 0.00000182\n",
      "Epoch: 8890/20000, Loss: 0.00018703\n",
      "Epoch: 8900/20000, Loss: 0.00008519\n",
      "Epoch: 8910/20000, Loss: 0.00002325\n",
      "Epoch: 8920/20000, Loss: 0.00000385\n",
      "Epoch: 8930/20000, Loss: 0.00000337\n",
      "Epoch: 8940/20000, Loss: 0.00000116\n",
      "Epoch: 8950/20000, Loss: 0.00000107\n",
      "Epoch: 8960/20000, Loss: 0.00000091\n",
      "Epoch: 8970/20000, Loss: 0.00000081\n",
      "Epoch: 8980/20000, Loss: 0.00000074\n",
      "Epoch: 8990/20000, Loss: 0.00000070\n",
      "Epoch: 9000/20000, Loss: 0.00000067\n",
      "Epoch: 9010/20000, Loss: 0.00000065\n",
      "Epoch: 9020/20000, Loss: 0.00000065\n",
      "Epoch: 9030/20000, Loss: 0.00000468\n",
      "Epoch: 9040/20000, Loss: 0.00011457\n",
      "Epoch: 9050/20000, Loss: 0.00000856\n",
      "Epoch: 9060/20000, Loss: 0.00000783\n",
      "Epoch: 9070/20000, Loss: 0.00000183\n",
      "Epoch: 9080/20000, Loss: 0.00000227\n",
      "Epoch: 9090/20000, Loss: 0.00000112\n",
      "Epoch: 9100/20000, Loss: 0.00000080\n",
      "Epoch: 9110/20000, Loss: 0.00000072\n",
      "Epoch: 9120/20000, Loss: 0.00000067\n",
      "Epoch: 9130/20000, Loss: 0.00000064\n",
      "Epoch: 9140/20000, Loss: 0.00000062\n",
      "Epoch: 9150/20000, Loss: 0.00000060\n",
      "Epoch: 9160/20000, Loss: 0.00000070\n",
      "Epoch: 9170/20000, Loss: 0.00000955\n",
      "Epoch: 9180/20000, Loss: 0.00013339\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 9190/20000, Loss: 0.00001012\n",
      "Epoch: 9200/20000, Loss: 0.00000952\n",
      "Epoch: 9210/20000, Loss: 0.00000189\n",
      "Epoch: 9220/20000, Loss: 0.00000180\n",
      "Epoch: 9230/20000, Loss: 0.00000102\n",
      "Epoch: 9240/20000, Loss: 0.00000077\n",
      "Epoch: 9250/20000, Loss: 0.00000070\n",
      "Epoch: 9260/20000, Loss: 0.00000067\n",
      "Epoch: 9270/20000, Loss: 0.00000063\n",
      "Epoch: 9280/20000, Loss: 0.00000062\n",
      "Epoch: 9290/20000, Loss: 0.00000070\n",
      "Epoch: 9300/20000, Loss: 0.00000513\n",
      "Epoch: 9310/20000, Loss: 0.00009478\n",
      "Epoch: 9320/20000, Loss: 0.00002575\n",
      "Epoch: 9330/20000, Loss: 0.00000272\n",
      "Epoch: 9340/20000, Loss: 0.00000185\n",
      "Epoch: 9350/20000, Loss: 0.00000142\n",
      "Epoch: 9360/20000, Loss: 0.00000092\n",
      "Epoch: 9370/20000, Loss: 0.00000071\n",
      "Epoch: 9380/20000, Loss: 0.00000074\n",
      "Epoch: 9390/20000, Loss: 0.00000118\n",
      "Epoch: 9400/20000, Loss: 0.00001900\n",
      "Epoch: 9410/20000, Loss: 0.00004888\n",
      "Epoch: 9420/20000, Loss: 0.00000677\n",
      "Epoch: 9430/20000, Loss: 0.00000510\n",
      "Epoch: 9440/20000, Loss: 0.00000169\n",
      "Epoch: 9450/20000, Loss: 0.00000072\n",
      "Epoch: 9460/20000, Loss: 0.00000097\n",
      "Epoch: 9470/20000, Loss: 0.00000066\n",
      "Epoch: 9480/20000, Loss: 0.00000066\n",
      "Epoch: 9490/20000, Loss: 0.00000224\n",
      "Epoch: 9500/20000, Loss: 0.00008297\n",
      "Epoch: 9510/20000, Loss: 0.00001563\n",
      "Epoch: 9520/20000, Loss: 0.00001292\n",
      "Epoch: 9530/20000, Loss: 0.00000515\n",
      "Epoch: 9540/20000, Loss: 0.00000219\n",
      "Epoch: 9550/20000, Loss: 0.00000116\n",
      "Epoch: 9560/20000, Loss: 0.00000065\n",
      "Epoch: 9570/20000, Loss: 0.00000075\n",
      "Epoch: 9580/20000, Loss: 0.00000122\n",
      "Epoch: 9590/20000, Loss: 0.00001658\n",
      "Epoch: 9600/20000, Loss: 0.00004522\n",
      "Epoch: 9610/20000, Loss: 0.00000990\n",
      "Epoch: 9620/20000, Loss: 0.00000363\n",
      "Epoch: 9630/20000, Loss: 0.00000100\n",
      "Epoch: 9640/20000, Loss: 0.00000110\n",
      "Epoch: 9650/20000, Loss: 0.00000104\n",
      "Epoch: 9660/20000, Loss: 0.00000065\n",
      "Epoch: 9670/20000, Loss: 0.00000057\n",
      "Epoch: 9680/20000, Loss: 0.00000064\n",
      "Epoch: 9690/20000, Loss: 0.00000880\n",
      "Epoch: 9700/20000, Loss: 0.00016173\n",
      "Epoch: 9710/20000, Loss: 0.00001192\n",
      "Epoch: 9720/20000, Loss: 0.00001110\n",
      "Epoch: 9730/20000, Loss: 0.00000328\n",
      "Epoch: 9740/20000, Loss: 0.00000139\n",
      "Epoch: 9750/20000, Loss: 0.00000107\n",
      "Epoch: 9760/20000, Loss: 0.00000081\n",
      "Epoch: 9770/20000, Loss: 0.00000068\n",
      "Epoch: 9780/20000, Loss: 0.00000065\n",
      "Epoch: 9790/20000, Loss: 0.00000066\n",
      "Epoch: 9800/20000, Loss: 0.00000139\n",
      "Epoch: 9810/20000, Loss: 0.00003191\n",
      "Epoch: 9820/20000, Loss: 0.00000448\n",
      "Epoch: 9830/20000, Loss: 0.00000319\n",
      "Epoch: 9840/20000, Loss: 0.00000333\n",
      "Epoch: 9850/20000, Loss: 0.00000188\n",
      "Epoch: 9860/20000, Loss: 0.00000097\n",
      "Epoch: 9870/20000, Loss: 0.00000062\n",
      "Epoch: 9880/20000, Loss: 0.00000075\n",
      "Epoch: 9890/20000, Loss: 0.00000089\n",
      "Epoch: 9900/20000, Loss: 0.00000630\n",
      "Epoch: 9910/20000, Loss: 0.00010586\n",
      "Epoch: 9920/20000, Loss: 0.00003512\n",
      "Epoch: 9930/20000, Loss: 0.00000859\n",
      "Epoch: 9940/20000, Loss: 0.00000426\n",
      "Epoch: 9950/20000, Loss: 0.00000180\n",
      "Epoch: 9960/20000, Loss: 0.00000115\n",
      "Epoch: 9970/20000, Loss: 0.00000062\n",
      "Epoch: 9980/20000, Loss: 0.00000070\n",
      "Epoch: 9990/20000, Loss: 0.00000176\n",
      "Epoch: 10000/20000, Loss: 0.00003852\n",
      "Epoch: 10010/20000, Loss: 0.00002171\n",
      "Epoch: 10020/20000, Loss: 0.00000306\n",
      "Epoch: 10030/20000, Loss: 0.00000376\n",
      "Epoch: 10040/20000, Loss: 0.00000080\n",
      "Epoch: 10050/20000, Loss: 0.00000111\n",
      "Epoch: 10060/20000, Loss: 0.00000183\n",
      "Epoch: 10070/20000, Loss: 0.00003563\n",
      "Epoch: 10080/20000, Loss: 0.00000957\n",
      "Epoch: 10090/20000, Loss: 0.00000110\n",
      "Epoch: 10100/20000, Loss: 0.00000266\n",
      "Epoch: 10110/20000, Loss: 0.00000077\n",
      "Epoch: 10120/20000, Loss: 0.00000107\n",
      "Epoch: 10130/20000, Loss: 0.00000091\n",
      "Epoch: 10140/20000, Loss: 0.00000133\n",
      "Epoch: 10150/20000, Loss: 0.00000753\n",
      "Epoch: 10160/20000, Loss: 0.00004438\n",
      "Epoch: 10170/20000, Loss: 0.00000263\n",
      "Epoch: 10180/20000, Loss: 0.00000344\n",
      "Epoch: 10190/20000, Loss: 0.00000246\n",
      "Epoch: 10200/20000, Loss: 0.00000186\n",
      "Epoch: 10210/20000, Loss: 0.00000665\n",
      "Epoch: 10220/20000, Loss: 0.00005044\n",
      "Epoch: 10230/20000, Loss: 0.00000418\n",
      "Epoch: 10240/20000, Loss: 0.00000136\n",
      "Epoch: 10250/20000, Loss: 0.00000326\n",
      "Epoch: 10260/20000, Loss: 0.00000111\n",
      "Epoch: 10270/20000, Loss: 0.00000086\n",
      "Epoch: 10280/20000, Loss: 0.00001178\n",
      "Epoch: 10290/20000, Loss: 0.00007917\n",
      "Epoch: 10300/20000, Loss: 0.00002120\n",
      "Epoch: 10310/20000, Loss: 0.00000724\n",
      "Epoch: 10320/20000, Loss: 0.00000234\n",
      "Epoch: 10330/20000, Loss: 0.00000159\n",
      "Epoch: 10340/20000, Loss: 0.00000100\n",
      "Epoch: 10350/20000, Loss: 0.00000284\n",
      "Epoch: 10360/20000, Loss: 0.00006270\n",
      "Epoch: 10370/20000, Loss: 0.00001718\n",
      "Epoch: 10380/20000, Loss: 0.00000890\n",
      "Epoch: 10390/20000, Loss: 0.00000384\n",
      "Epoch: 10400/20000, Loss: 0.00000175\n",
      "Epoch: 10410/20000, Loss: 0.00000079\n",
      "Epoch: 10420/20000, Loss: 0.00000081\n",
      "Epoch: 10430/20000, Loss: 0.00000055\n",
      "Epoch: 10440/20000, Loss: 0.00000054\n",
      "Epoch: 10450/20000, Loss: 0.00000733\n",
      "Epoch: 10460/20000, Loss: 0.00017284\n",
      "Epoch: 10470/20000, Loss: 0.00003898\n",
      "Epoch: 10480/20000, Loss: 0.00000745\n",
      "Epoch: 10490/20000, Loss: 0.00000481\n",
      "Epoch: 10500/20000, Loss: 0.00000228\n",
      "Epoch: 10510/20000, Loss: 0.00000116\n",
      "Epoch: 10520/20000, Loss: 0.00000080\n",
      "Epoch: 10530/20000, Loss: 0.00000062\n",
      "Epoch: 10540/20000, Loss: 0.00000062\n",
      "Epoch: 10550/20000, Loss: 0.00000067\n",
      "Epoch: 10560/20000, Loss: 0.00000347\n",
      "Epoch: 10570/20000, Loss: 0.00006229\n",
      "Epoch: 10580/20000, Loss: 0.00002006\n",
      "Epoch: 10590/20000, Loss: 0.00000805\n",
      "Epoch: 10600/20000, Loss: 0.00000312\n",
      "Epoch: 10610/20000, Loss: 0.00000158\n",
      "Epoch: 10620/20000, Loss: 0.00000059\n",
      "Epoch: 10630/20000, Loss: 0.00000086\n",
      "Epoch: 10640/20000, Loss: 0.00000141\n",
      "Epoch: 10650/20000, Loss: 0.00001307\n",
      "Epoch: 10660/20000, Loss: 0.00006941\n",
      "Epoch: 10670/20000, Loss: 0.00002103\n",
      "Epoch: 10680/20000, Loss: 0.00000619\n",
      "Epoch: 10690/20000, Loss: 0.00000334\n",
      "Epoch: 10700/20000, Loss: 0.00000114\n",
      "Epoch: 10710/20000, Loss: 0.00000094\n",
      "Epoch: 10720/20000, Loss: 0.00000057\n",
      "Epoch: 10730/20000, Loss: 0.00000053\n",
      "Epoch: 10740/20000, Loss: 0.00000054\n",
      "Epoch: 10750/20000, Loss: 0.00000647\n",
      "Epoch: 10760/20000, Loss: 0.00018757\n",
      "Epoch: 10770/20000, Loss: 0.00003939\n",
      "Epoch: 10780/20000, Loss: 0.00001645\n",
      "Epoch: 10790/20000, Loss: 0.00000711\n",
      "Epoch: 10800/20000, Loss: 0.00000196\n",
      "Epoch: 10810/20000, Loss: 0.00000481\n",
      "Epoch: 10820/20000, Loss: 0.00002787\n",
      "Epoch: 10830/20000, Loss: 0.00000777\n",
      "Epoch: 10840/20000, Loss: 0.00000192\n",
      "Epoch: 10850/20000, Loss: 0.00000073\n",
      "Epoch: 10860/20000, Loss: 0.00000063\n",
      "Epoch: 10870/20000, Loss: 0.00000068\n",
      "Epoch: 10880/20000, Loss: 0.00000064\n",
      "Epoch: 10890/20000, Loss: 0.00000179\n",
      "Epoch: 10900/20000, Loss: 0.00001600\n",
      "Epoch: 10910/20000, Loss: 0.00000196\n",
      "Epoch: 10920/20000, Loss: 0.00000420\n",
      "Epoch: 10930/20000, Loss: 0.00000109\n",
      "Epoch: 10940/20000, Loss: 0.00000108\n",
      "Epoch: 10950/20000, Loss: 0.00000060\n",
      "Epoch: 10960/20000, Loss: 0.00000124\n",
      "Epoch: 10970/20000, Loss: 0.00004069\n",
      "Epoch: 10980/20000, Loss: 0.00000195\n",
      "Epoch: 10990/20000, Loss: 0.00001387\n",
      "Epoch: 11000/20000, Loss: 0.00000517\n",
      "Epoch: 11010/20000, Loss: 0.00000102\n",
      "Epoch: 11020/20000, Loss: 0.00000080\n",
      "Epoch: 11030/20000, Loss: 0.00000070\n",
      "Epoch: 11040/20000, Loss: 0.00000057\n",
      "Epoch: 11050/20000, Loss: 0.00000054\n",
      "Epoch: 11060/20000, Loss: 0.00000052\n",
      "Epoch: 11070/20000, Loss: 0.00000053\n",
      "Epoch: 11080/20000, Loss: 0.00000099\n",
      "Epoch: 11090/20000, Loss: 0.00002471\n",
      "Epoch: 11100/20000, Loss: 0.00002632\n",
      "Epoch: 11110/20000, Loss: 0.00001245\n",
      "Epoch: 11120/20000, Loss: 0.00000836\n",
      "Epoch: 11130/20000, Loss: 0.00000280\n",
      "Epoch: 11140/20000, Loss: 0.00000089\n",
      "Epoch: 11150/20000, Loss: 0.00000066\n",
      "Epoch: 11160/20000, Loss: 0.00000059\n",
      "Epoch: 11170/20000, Loss: 0.00000057\n",
      "Epoch: 11180/20000, Loss: 0.00000049\n",
      "Epoch: 11190/20000, Loss: 0.00000050\n",
      "Epoch: 11200/20000, Loss: 0.00000093\n",
      "Epoch: 11210/20000, Loss: 0.00002792\n",
      "Epoch: 11220/20000, Loss: 0.00001555\n",
      "Epoch: 11230/20000, Loss: 0.00000500\n",
      "Epoch: 11240/20000, Loss: 0.00000341\n",
      "Epoch: 11250/20000, Loss: 0.00000093\n",
      "Epoch: 11260/20000, Loss: 0.00000086\n",
      "Epoch: 11270/20000, Loss: 0.00000076\n",
      "Epoch: 11280/20000, Loss: 0.00000051\n",
      "Epoch: 11290/20000, Loss: 0.00000057\n",
      "Epoch: 11300/20000, Loss: 0.00000267\n",
      "Epoch: 11310/20000, Loss: 0.00007333\n",
      "Epoch: 11320/20000, Loss: 0.00000951\n",
      "Epoch: 11330/20000, Loss: 0.00000544\n",
      "Epoch: 11340/20000, Loss: 0.00000131\n",
      "Epoch: 11350/20000, Loss: 0.00000147\n",
      "Epoch: 11360/20000, Loss: 0.00000083\n",
      "Epoch: 11370/20000, Loss: 0.00000062\n",
      "Epoch: 11380/20000, Loss: 0.00000177\n",
      "Epoch: 11390/20000, Loss: 0.00004873\n",
      "Epoch: 11400/20000, Loss: 0.00000860\n",
      "Epoch: 11410/20000, Loss: 0.00000416\n",
      "Epoch: 11420/20000, Loss: 0.00000155\n",
      "Epoch: 11430/20000, Loss: 0.00000121\n",
      "Epoch: 11440/20000, Loss: 0.00000096\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 11450/20000, Loss: 0.00000057\n",
      "Epoch: 11460/20000, Loss: 0.00000055\n",
      "Epoch: 11470/20000, Loss: 0.00000125\n",
      "Epoch: 11480/20000, Loss: 0.00003190\n",
      "Epoch: 11490/20000, Loss: 0.00001553\n",
      "Epoch: 11500/20000, Loss: 0.00000754\n",
      "Epoch: 11510/20000, Loss: 0.00000381\n",
      "Epoch: 11520/20000, Loss: 0.00000214\n",
      "Epoch: 11530/20000, Loss: 0.00000099\n",
      "Epoch: 11540/20000, Loss: 0.00000061\n",
      "Epoch: 11550/20000, Loss: 0.00000064\n",
      "Epoch: 11560/20000, Loss: 0.00000048\n",
      "Epoch: 11570/20000, Loss: 0.00000058\n",
      "Epoch: 11580/20000, Loss: 0.00000326\n",
      "Epoch: 11590/20000, Loss: 0.00006569\n",
      "Epoch: 11600/20000, Loss: 0.00001280\n",
      "Epoch: 11610/20000, Loss: 0.00000472\n",
      "Epoch: 11620/20000, Loss: 0.00000155\n",
      "Epoch: 11630/20000, Loss: 0.00000130\n",
      "Epoch: 11640/20000, Loss: 0.00000065\n",
      "Epoch: 11650/20000, Loss: 0.00000067\n",
      "Epoch: 11660/20000, Loss: 0.00000198\n",
      "Epoch: 11670/20000, Loss: 0.00004122\n",
      "Epoch: 11680/20000, Loss: 0.00000419\n",
      "Epoch: 11690/20000, Loss: 0.00000654\n",
      "Epoch: 11700/20000, Loss: 0.00000388\n",
      "Epoch: 11710/20000, Loss: 0.00000205\n",
      "Epoch: 11720/20000, Loss: 0.00000086\n",
      "Epoch: 11730/20000, Loss: 0.00000060\n",
      "Epoch: 11740/20000, Loss: 0.00000110\n",
      "Epoch: 11750/20000, Loss: 0.00001394\n",
      "Epoch: 11760/20000, Loss: 0.00002050\n",
      "Epoch: 11770/20000, Loss: 0.00001521\n",
      "Epoch: 11780/20000, Loss: 0.00000235\n",
      "Epoch: 11790/20000, Loss: 0.00000187\n",
      "Epoch: 11800/20000, Loss: 0.00000144\n",
      "Epoch: 11810/20000, Loss: 0.00000841\n",
      "Epoch: 11820/20000, Loss: 0.00006794\n",
      "Epoch: 11830/20000, Loss: 0.00002070\n",
      "Epoch: 11840/20000, Loss: 0.00000441\n",
      "Epoch: 11850/20000, Loss: 0.00000193\n",
      "Epoch: 11860/20000, Loss: 0.00000129\n",
      "Epoch: 11870/20000, Loss: 0.00000069\n",
      "Epoch: 11880/20000, Loss: 0.00000052\n",
      "Epoch: 11890/20000, Loss: 0.00000051\n",
      "Epoch: 11900/20000, Loss: 0.00000088\n",
      "Epoch: 11910/20000, Loss: 0.00001344\n",
      "Epoch: 11920/20000, Loss: 0.00006601\n",
      "Epoch: 11930/20000, Loss: 0.00002006\n",
      "Epoch: 11940/20000, Loss: 0.00000653\n",
      "Epoch: 11950/20000, Loss: 0.00000256\n",
      "Epoch: 11960/20000, Loss: 0.00000081\n",
      "Epoch: 11970/20000, Loss: 0.00000083\n",
      "Epoch: 11980/20000, Loss: 0.00000050\n",
      "Epoch: 11990/20000, Loss: 0.00000063\n",
      "Epoch: 12000/20000, Loss: 0.00000427\n",
      "Epoch: 12010/20000, Loss: 0.00005705\n",
      "Epoch: 12020/20000, Loss: 0.00002122\n",
      "Epoch: 12030/20000, Loss: 0.00000486\n",
      "Epoch: 12040/20000, Loss: 0.00000428\n",
      "Epoch: 12050/20000, Loss: 0.00000226\n",
      "Epoch: 12060/20000, Loss: 0.00000092\n",
      "Epoch: 12070/20000, Loss: 0.00000052\n",
      "Epoch: 12080/20000, Loss: 0.00000108\n",
      "Epoch: 12090/20000, Loss: 0.00001851\n",
      "Epoch: 12100/20000, Loss: 0.00003846\n",
      "Epoch: 12110/20000, Loss: 0.00000684\n",
      "Epoch: 12120/20000, Loss: 0.00000460\n",
      "Epoch: 12130/20000, Loss: 0.00000225\n",
      "Epoch: 12140/20000, Loss: 0.00000090\n",
      "Epoch: 12150/20000, Loss: 0.00000084\n",
      "Epoch: 12160/20000, Loss: 0.00000055\n",
      "Epoch: 12170/20000, Loss: 0.00000142\n",
      "Epoch: 12180/20000, Loss: 0.00003103\n",
      "Epoch: 12190/20000, Loss: 0.00002386\n",
      "Epoch: 12200/20000, Loss: 0.00000885\n",
      "Epoch: 12210/20000, Loss: 0.00001730\n",
      "Epoch: 12220/20000, Loss: 0.00000138\n",
      "Epoch: 12230/20000, Loss: 0.00000324\n",
      "Epoch: 12240/20000, Loss: 0.00000162\n",
      "Epoch: 12250/20000, Loss: 0.00000118\n",
      "Epoch: 12260/20000, Loss: 0.00000100\n",
      "Epoch: 12270/20000, Loss: 0.00000693\n",
      "Epoch: 12280/20000, Loss: 0.00006665\n",
      "Epoch: 12290/20000, Loss: 0.00002163\n",
      "Epoch: 12300/20000, Loss: 0.00000702\n",
      "Epoch: 12310/20000, Loss: 0.00000300\n",
      "Epoch: 12320/20000, Loss: 0.00000144\n",
      "Epoch: 12330/20000, Loss: 0.00000082\n",
      "Epoch: 12340/20000, Loss: 0.00000045\n",
      "Epoch: 12350/20000, Loss: 0.00000056\n",
      "Epoch: 12360/20000, Loss: 0.00000096\n",
      "Epoch: 12370/20000, Loss: 0.00001093\n",
      "Epoch: 12380/20000, Loss: 0.00008388\n",
      "Epoch: 12390/20000, Loss: 0.00002686\n",
      "Epoch: 12400/20000, Loss: 0.00000544\n",
      "Epoch: 12410/20000, Loss: 0.00000322\n",
      "Epoch: 12420/20000, Loss: 0.00000185\n",
      "Epoch: 12430/20000, Loss: 0.00000073\n",
      "Epoch: 12440/20000, Loss: 0.00000076\n",
      "Epoch: 12450/20000, Loss: 0.00000053\n",
      "Epoch: 12460/20000, Loss: 0.00000055\n",
      "Epoch: 12470/20000, Loss: 0.00000227\n",
      "Epoch: 12480/20000, Loss: 0.00007091\n",
      "Epoch: 12490/20000, Loss: 0.00002130\n",
      "Epoch: 12500/20000, Loss: 0.00000789\n",
      "Epoch: 12510/20000, Loss: 0.00000474\n",
      "Epoch: 12520/20000, Loss: 0.00000163\n",
      "Epoch: 12530/20000, Loss: 0.00000099\n",
      "Epoch: 12540/20000, Loss: 0.00000059\n",
      "Epoch: 12550/20000, Loss: 0.00000052\n",
      "Epoch: 12560/20000, Loss: 0.00000043\n",
      "Epoch: 12570/20000, Loss: 0.00000042\n",
      "Epoch: 12580/20000, Loss: 0.00000111\n",
      "Epoch: 12590/20000, Loss: 0.00006315\n",
      "Epoch: 12600/20000, Loss: 0.00005291\n",
      "Epoch: 12610/20000, Loss: 0.00001017\n",
      "Epoch: 12620/20000, Loss: 0.00002448\n",
      "Epoch: 12630/20000, Loss: 0.00001930\n",
      "Epoch: 12640/20000, Loss: 0.00000629\n",
      "Epoch: 12650/20000, Loss: 0.00000430\n",
      "Epoch: 12660/20000, Loss: 0.00000099\n",
      "Epoch: 12670/20000, Loss: 0.00000095\n",
      "Epoch: 12680/20000, Loss: 0.00000071\n",
      "Epoch: 12690/20000, Loss: 0.00000052\n",
      "Epoch: 12700/20000, Loss: 0.00000049\n",
      "Epoch: 12710/20000, Loss: 0.00000046\n",
      "Epoch: 12720/20000, Loss: 0.00000045\n",
      "Epoch: 12730/20000, Loss: 0.00000044\n",
      "Epoch: 12740/20000, Loss: 0.00000042\n",
      "Epoch: 12750/20000, Loss: 0.00000041\n",
      "Epoch: 12760/20000, Loss: 0.00000041\n",
      "Epoch: 12770/20000, Loss: 0.00000074\n",
      "Epoch: 12780/20000, Loss: 0.00005319\n",
      "Epoch: 12790/20000, Loss: 0.00003269\n",
      "Epoch: 12800/20000, Loss: 0.00003307\n",
      "Epoch: 12810/20000, Loss: 0.00000744\n",
      "Epoch: 12820/20000, Loss: 0.00000294\n",
      "Epoch: 12830/20000, Loss: 0.00000154\n",
      "Epoch: 12840/20000, Loss: 0.00000095\n",
      "Epoch: 12850/20000, Loss: 0.00000065\n",
      "Epoch: 12860/20000, Loss: 0.00000054\n",
      "Epoch: 12870/20000, Loss: 0.00000049\n",
      "Epoch: 12880/20000, Loss: 0.00000047\n",
      "Epoch: 12890/20000, Loss: 0.00000045\n",
      "Epoch: 12900/20000, Loss: 0.00000047\n",
      "Epoch: 12910/20000, Loss: 0.00000234\n",
      "Epoch: 12920/20000, Loss: 0.00004897\n",
      "Epoch: 12930/20000, Loss: 0.00001419\n",
      "Epoch: 12940/20000, Loss: 0.00000338\n",
      "Epoch: 12950/20000, Loss: 0.00000106\n",
      "Epoch: 12960/20000, Loss: 0.00000082\n",
      "Epoch: 12970/20000, Loss: 0.00000071\n",
      "Epoch: 12980/20000, Loss: 0.00000047\n",
      "Epoch: 12990/20000, Loss: 0.00000052\n",
      "Epoch: 13000/20000, Loss: 0.00000085\n",
      "Epoch: 13010/20000, Loss: 0.00000985\n",
      "Epoch: 13020/20000, Loss: 0.00004435\n",
      "Epoch: 13030/20000, Loss: 0.00000498\n",
      "Epoch: 13040/20000, Loss: 0.00000306\n",
      "Epoch: 13050/20000, Loss: 0.00000111\n",
      "Epoch: 13060/20000, Loss: 0.00000246\n",
      "Epoch: 13070/20000, Loss: 0.00004912\n",
      "Epoch: 13080/20000, Loss: 0.00000955\n",
      "Epoch: 13090/20000, Loss: 0.00000271\n",
      "Epoch: 13100/20000, Loss: 0.00000132\n",
      "Epoch: 13110/20000, Loss: 0.00000067\n",
      "Epoch: 13120/20000, Loss: 0.00000080\n",
      "Epoch: 13130/20000, Loss: 0.00000054\n",
      "Epoch: 13140/20000, Loss: 0.00000051\n",
      "Epoch: 13150/20000, Loss: 0.00000208\n",
      "Epoch: 13160/20000, Loss: 0.00008134\n",
      "Epoch: 13170/20000, Loss: 0.00003289\n",
      "Epoch: 13180/20000, Loss: 0.00001927\n",
      "Epoch: 13190/20000, Loss: 0.00000991\n",
      "Epoch: 13200/20000, Loss: 0.00000436\n",
      "Epoch: 13210/20000, Loss: 0.00000190\n",
      "Epoch: 13220/20000, Loss: 0.00000107\n",
      "Epoch: 13230/20000, Loss: 0.00000065\n",
      "Epoch: 13240/20000, Loss: 0.00000054\n",
      "Epoch: 13250/20000, Loss: 0.00000050\n",
      "Epoch: 13260/20000, Loss: 0.00000046\n",
      "Epoch: 13270/20000, Loss: 0.00000044\n",
      "Epoch: 13280/20000, Loss: 0.00000045\n",
      "Epoch: 13290/20000, Loss: 0.00000333\n",
      "Epoch: 13300/20000, Loss: 0.00007279\n",
      "Epoch: 13310/20000, Loss: 0.00002439\n",
      "Epoch: 13320/20000, Loss: 0.00000756\n",
      "Epoch: 13330/20000, Loss: 0.00000170\n",
      "Epoch: 13340/20000, Loss: 0.00000124\n",
      "Epoch: 13350/20000, Loss: 0.00000072\n",
      "Epoch: 13360/20000, Loss: 0.00000061\n",
      "Epoch: 13370/20000, Loss: 0.00000052\n",
      "Epoch: 13380/20000, Loss: 0.00000059\n",
      "Epoch: 13390/20000, Loss: 0.00000376\n",
      "Epoch: 13400/20000, Loss: 0.00003501\n",
      "Epoch: 13410/20000, Loss: 0.00000496\n",
      "Epoch: 13420/20000, Loss: 0.00000270\n",
      "Epoch: 13430/20000, Loss: 0.00000156\n",
      "Epoch: 13440/20000, Loss: 0.00000084\n",
      "Epoch: 13450/20000, Loss: 0.00000056\n",
      "Epoch: 13460/20000, Loss: 0.00000087\n",
      "Epoch: 13470/20000, Loss: 0.00003286\n",
      "Epoch: 13480/20000, Loss: 0.00001982\n",
      "Epoch: 13490/20000, Loss: 0.00003270\n",
      "Epoch: 13500/20000, Loss: 0.00000622\n",
      "Epoch: 13510/20000, Loss: 0.00000249\n",
      "Epoch: 13520/20000, Loss: 0.00000164\n",
      "Epoch: 13530/20000, Loss: 0.00000081\n",
      "Epoch: 13540/20000, Loss: 0.00000068\n",
      "Epoch: 13550/20000, Loss: 0.00000053\n",
      "Epoch: 13560/20000, Loss: 0.00000048\n",
      "Epoch: 13570/20000, Loss: 0.00000046\n",
      "Epoch: 13580/20000, Loss: 0.00000050\n",
      "Epoch: 13590/20000, Loss: 0.00000355\n",
      "Epoch: 13600/20000, Loss: 0.00007424\n",
      "Epoch: 13610/20000, Loss: 0.00001817\n",
      "Epoch: 13620/20000, Loss: 0.00000579\n",
      "Epoch: 13630/20000, Loss: 0.00000119\n",
      "Epoch: 13640/20000, Loss: 0.00000097\n",
      "Epoch: 13650/20000, Loss: 0.00000057\n",
      "Epoch: 13660/20000, Loss: 0.00000054\n",
      "Epoch: 13670/20000, Loss: 0.00000047\n",
      "Epoch: 13680/20000, Loss: 0.00000055\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 13690/20000, Loss: 0.00000421\n",
      "Epoch: 13700/20000, Loss: 0.00005736\n",
      "Epoch: 13710/20000, Loss: 0.00001397\n",
      "Epoch: 13720/20000, Loss: 0.00000370\n",
      "Epoch: 13730/20000, Loss: 0.00000114\n",
      "Epoch: 13740/20000, Loss: 0.00000170\n",
      "Epoch: 13750/20000, Loss: 0.00000056\n",
      "Epoch: 13760/20000, Loss: 0.00000066\n",
      "Epoch: 13770/20000, Loss: 0.00000075\n",
      "Epoch: 13780/20000, Loss: 0.00000896\n",
      "Epoch: 13790/20000, Loss: 0.00006340\n",
      "Epoch: 13800/20000, Loss: 0.00001979\n",
      "Epoch: 13810/20000, Loss: 0.00000722\n",
      "Epoch: 13820/20000, Loss: 0.00000305\n",
      "Epoch: 13830/20000, Loss: 0.00000129\n",
      "Epoch: 13840/20000, Loss: 0.00000093\n",
      "Epoch: 13850/20000, Loss: 0.00000051\n",
      "Epoch: 13860/20000, Loss: 0.00000055\n",
      "Epoch: 13870/20000, Loss: 0.00000066\n",
      "Epoch: 13880/20000, Loss: 0.00000528\n",
      "Epoch: 13890/20000, Loss: 0.00006330\n",
      "Epoch: 13900/20000, Loss: 0.00001666\n",
      "Epoch: 13910/20000, Loss: 0.00000246\n",
      "Epoch: 13920/20000, Loss: 0.00000159\n",
      "Epoch: 13930/20000, Loss: 0.00000094\n",
      "Epoch: 13940/20000, Loss: 0.00000081\n",
      "Epoch: 13950/20000, Loss: 0.00000050\n",
      "Epoch: 13960/20000, Loss: 0.00000045\n",
      "Epoch: 13970/20000, Loss: 0.00000043\n",
      "Epoch: 13980/20000, Loss: 0.00000080\n",
      "Epoch: 13990/20000, Loss: 0.00008799\n",
      "Epoch: 14000/20000, Loss: 0.00006262\n",
      "Epoch: 14010/20000, Loss: 0.00002295\n",
      "Epoch: 14020/20000, Loss: 0.00001391\n",
      "Epoch: 14030/20000, Loss: 0.00000367\n",
      "Epoch: 14040/20000, Loss: 0.00000217\n",
      "Epoch: 14050/20000, Loss: 0.00000122\n",
      "Epoch: 14060/20000, Loss: 0.00000078\n",
      "Epoch: 14070/20000, Loss: 0.00000069\n",
      "Epoch: 14080/20000, Loss: 0.00000109\n",
      "Epoch: 14090/20000, Loss: 0.00002050\n",
      "Epoch: 14100/20000, Loss: 0.00000775\n",
      "Epoch: 14110/20000, Loss: 0.00000479\n",
      "Epoch: 14120/20000, Loss: 0.00000202\n",
      "Epoch: 14130/20000, Loss: 0.00000081\n",
      "Epoch: 14140/20000, Loss: 0.00000081\n",
      "Epoch: 14150/20000, Loss: 0.00000055\n",
      "Epoch: 14160/20000, Loss: 0.00000059\n",
      "Epoch: 14170/20000, Loss: 0.00000125\n",
      "Epoch: 14180/20000, Loss: 0.00002000\n",
      "Epoch: 14190/20000, Loss: 0.00000362\n",
      "Epoch: 14200/20000, Loss: 0.00000589\n",
      "Epoch: 14210/20000, Loss: 0.00000084\n",
      "Epoch: 14220/20000, Loss: 0.00000200\n",
      "Epoch: 14230/20000, Loss: 0.00000073\n",
      "Epoch: 14240/20000, Loss: 0.00000134\n",
      "Epoch: 14250/20000, Loss: 0.00000743\n",
      "Epoch: 14260/20000, Loss: 0.00004127\n",
      "Epoch: 14270/20000, Loss: 0.00000474\n",
      "Epoch: 14280/20000, Loss: 0.00000185\n",
      "Epoch: 14290/20000, Loss: 0.00000269\n",
      "Epoch: 14300/20000, Loss: 0.00000058\n",
      "Epoch: 14310/20000, Loss: 0.00000064\n",
      "Epoch: 14320/20000, Loss: 0.00000379\n",
      "Epoch: 14330/20000, Loss: 0.00005455\n",
      "Epoch: 14340/20000, Loss: 0.00001527\n",
      "Epoch: 14350/20000, Loss: 0.00000248\n",
      "Epoch: 14360/20000, Loss: 0.00000177\n",
      "Epoch: 14370/20000, Loss: 0.00000128\n",
      "Epoch: 14380/20000, Loss: 0.00000086\n",
      "Epoch: 14390/20000, Loss: 0.00000169\n",
      "Epoch: 14400/20000, Loss: 0.00002165\n",
      "Epoch: 14410/20000, Loss: 0.00000516\n",
      "Epoch: 14420/20000, Loss: 0.00000644\n",
      "Epoch: 14430/20000, Loss: 0.00000094\n",
      "Epoch: 14440/20000, Loss: 0.00000186\n",
      "Epoch: 14450/20000, Loss: 0.00000183\n",
      "Epoch: 14460/20000, Loss: 0.00000934\n",
      "Epoch: 14470/20000, Loss: 0.00005425\n",
      "Epoch: 14480/20000, Loss: 0.00001057\n",
      "Epoch: 14490/20000, Loss: 0.00000150\n",
      "Epoch: 14500/20000, Loss: 0.00000258\n",
      "Epoch: 14510/20000, Loss: 0.00000094\n",
      "Epoch: 14520/20000, Loss: 0.00000088\n",
      "Epoch: 14530/20000, Loss: 0.00000062\n",
      "Epoch: 14540/20000, Loss: 0.00000155\n",
      "Epoch: 14550/20000, Loss: 0.00002839\n",
      "Epoch: 14560/20000, Loss: 0.00004545\n",
      "Epoch: 14570/20000, Loss: 0.00001838\n",
      "Epoch: 14580/20000, Loss: 0.00000967\n",
      "Epoch: 14590/20000, Loss: 0.00001633\n",
      "Epoch: 14600/20000, Loss: 0.00000518\n",
      "Epoch: 14610/20000, Loss: 0.00000235\n",
      "Epoch: 14620/20000, Loss: 0.00000077\n",
      "Epoch: 14630/20000, Loss: 0.00000114\n",
      "Epoch: 14640/20000, Loss: 0.00000234\n",
      "Epoch: 14650/20000, Loss: 0.00001942\n",
      "Epoch: 14660/20000, Loss: 0.00000117\n",
      "Epoch: 14670/20000, Loss: 0.00000353\n",
      "Epoch: 14680/20000, Loss: 0.00000148\n",
      "Epoch: 14690/20000, Loss: 0.00000185\n",
      "Epoch: 14700/20000, Loss: 0.00000338\n",
      "Epoch: 14710/20000, Loss: 0.00001715\n",
      "Epoch: 14720/20000, Loss: 0.00001285\n",
      "Epoch: 14730/20000, Loss: 0.00000458\n",
      "Epoch: 14740/20000, Loss: 0.00000459\n",
      "Epoch: 14750/20000, Loss: 0.00000184\n",
      "Epoch: 14760/20000, Loss: 0.00000346\n",
      "Epoch: 14770/20000, Loss: 0.00002286\n",
      "Epoch: 14780/20000, Loss: 0.00002357\n",
      "Epoch: 14790/20000, Loss: 0.00000828\n",
      "Epoch: 14800/20000, Loss: 0.00000391\n",
      "Epoch: 14810/20000, Loss: 0.00000185\n",
      "Epoch: 14820/20000, Loss: 0.00000170\n",
      "Epoch: 14830/20000, Loss: 0.00000977\n",
      "Epoch: 14840/20000, Loss: 0.00002382\n",
      "Epoch: 14850/20000, Loss: 0.00000275\n",
      "Epoch: 14860/20000, Loss: 0.00000215\n",
      "Epoch: 14870/20000, Loss: 0.00000106\n",
      "Epoch: 14880/20000, Loss: 0.00000424\n",
      "Epoch: 14890/20000, Loss: 0.00004167\n",
      "Epoch: 14900/20000, Loss: 0.00000491\n",
      "Epoch: 14910/20000, Loss: 0.00000943\n",
      "Epoch: 14920/20000, Loss: 0.00000163\n",
      "Epoch: 14930/20000, Loss: 0.00000149\n",
      "Epoch: 14940/20000, Loss: 0.00000079\n",
      "Epoch: 14950/20000, Loss: 0.00000160\n",
      "Epoch: 14960/20000, Loss: 0.00002507\n",
      "Epoch: 14970/20000, Loss: 0.00003082\n",
      "Epoch: 14980/20000, Loss: 0.00000785\n",
      "Epoch: 14990/20000, Loss: 0.00000326\n",
      "Epoch: 15000/20000, Loss: 0.00000662\n",
      "Epoch: 15010/20000, Loss: 0.00000759\n",
      "Epoch: 15020/20000, Loss: 0.00000330\n",
      "Epoch: 15030/20000, Loss: 0.00000083\n",
      "Epoch: 15040/20000, Loss: 0.00000129\n",
      "Epoch: 15050/20000, Loss: 0.00000214\n",
      "Epoch: 15060/20000, Loss: 0.00001800\n",
      "Epoch: 15070/20000, Loss: 0.00002515\n",
      "Epoch: 15080/20000, Loss: 0.00000875\n",
      "Epoch: 15090/20000, Loss: 0.00001020\n",
      "Epoch: 15100/20000, Loss: 0.00000239\n",
      "Epoch: 15110/20000, Loss: 0.00000064\n",
      "Epoch: 15120/20000, Loss: 0.00000100\n",
      "Epoch: 15130/20000, Loss: 0.00000952\n",
      "Epoch: 15140/20000, Loss: 0.00006478\n",
      "Epoch: 15150/20000, Loss: 0.00000581\n",
      "Epoch: 15160/20000, Loss: 0.00000325\n",
      "Epoch: 15170/20000, Loss: 0.00000369\n",
      "Epoch: 15180/20000, Loss: 0.00000085\n",
      "Epoch: 15190/20000, Loss: 0.00000083\n",
      "Epoch: 15200/20000, Loss: 0.00002567\n",
      "Epoch: 15210/20000, Loss: 0.00000524\n",
      "Epoch: 15220/20000, Loss: 0.00000400\n",
      "Epoch: 15230/20000, Loss: 0.00000365\n",
      "Epoch: 15240/20000, Loss: 0.00000113\n",
      "Epoch: 15250/20000, Loss: 0.00000173\n",
      "Epoch: 15260/20000, Loss: 0.00000771\n",
      "Epoch: 15270/20000, Loss: 0.00000271\n",
      "Epoch: 15280/20000, Loss: 0.00000170\n",
      "Epoch: 15290/20000, Loss: 0.00000632\n",
      "Epoch: 15300/20000, Loss: 0.00001567\n",
      "Epoch: 15310/20000, Loss: 0.00000928\n",
      "Epoch: 15320/20000, Loss: 0.00000601\n",
      "Epoch: 15330/20000, Loss: 0.00000223\n",
      "Epoch: 15340/20000, Loss: 0.00000115\n",
      "Epoch: 15350/20000, Loss: 0.00003100\n",
      "Epoch: 15360/20000, Loss: 0.00001102\n",
      "Epoch: 15370/20000, Loss: 0.00000729\n",
      "Epoch: 15380/20000, Loss: 0.00000326\n",
      "Epoch: 15390/20000, Loss: 0.00000149\n",
      "Epoch: 15400/20000, Loss: 0.00000142\n",
      "Epoch: 15410/20000, Loss: 0.00000445\n",
      "Epoch: 15420/20000, Loss: 0.00001405\n",
      "Epoch: 15430/20000, Loss: 0.00000210\n",
      "Epoch: 15440/20000, Loss: 0.00000217\n",
      "Epoch: 15450/20000, Loss: 0.00000937\n",
      "Epoch: 15460/20000, Loss: 0.00002601\n",
      "Epoch: 15470/20000, Loss: 0.00000470\n",
      "Epoch: 15480/20000, Loss: 0.00000182\n",
      "Epoch: 15490/20000, Loss: 0.00000825\n",
      "Epoch: 15500/20000, Loss: 0.00004415\n",
      "Epoch: 15510/20000, Loss: 0.00001578\n",
      "Epoch: 15520/20000, Loss: 0.00000870\n",
      "Epoch: 15530/20000, Loss: 0.00000352\n",
      "Epoch: 15540/20000, Loss: 0.00000088\n",
      "Epoch: 15550/20000, Loss: 0.00000084\n",
      "Epoch: 15560/20000, Loss: 0.00000053\n",
      "Epoch: 15570/20000, Loss: 0.00000316\n",
      "Epoch: 15580/20000, Loss: 0.00002579\n",
      "Epoch: 15590/20000, Loss: 0.00000940\n",
      "Epoch: 15600/20000, Loss: 0.00000343\n",
      "Epoch: 15610/20000, Loss: 0.00000111\n",
      "Epoch: 15620/20000, Loss: 0.00000092\n",
      "Epoch: 15630/20000, Loss: 0.00000080\n",
      "Epoch: 15640/20000, Loss: 0.00000786\n",
      "Epoch: 15650/20000, Loss: 0.00003437\n",
      "Epoch: 15660/20000, Loss: 0.00000753\n",
      "Epoch: 15670/20000, Loss: 0.00000393\n",
      "Epoch: 15680/20000, Loss: 0.00000239\n",
      "Epoch: 15690/20000, Loss: 0.00000127\n",
      "Epoch: 15700/20000, Loss: 0.00000136\n",
      "Epoch: 15710/20000, Loss: 0.00002212\n",
      "Epoch: 15720/20000, Loss: 0.00000705\n",
      "Epoch: 15730/20000, Loss: 0.00000803\n",
      "Epoch: 15740/20000, Loss: 0.00000185\n",
      "Epoch: 15750/20000, Loss: 0.00000106\n",
      "Epoch: 15760/20000, Loss: 0.00000070\n",
      "Epoch: 15770/20000, Loss: 0.00000434\n",
      "Epoch: 15780/20000, Loss: 0.00004746\n",
      "Epoch: 15790/20000, Loss: 0.00001445\n",
      "Epoch: 15800/20000, Loss: 0.00000372\n",
      "Epoch: 15810/20000, Loss: 0.00000224\n",
      "Epoch: 15820/20000, Loss: 0.00000882\n",
      "Epoch: 15830/20000, Loss: 0.00000914\n",
      "Epoch: 15840/20000, Loss: 0.00000892\n",
      "Epoch: 15850/20000, Loss: 0.00000216\n",
      "Epoch: 15860/20000, Loss: 0.00000229\n",
      "Epoch: 15870/20000, Loss: 0.00000520\n",
      "Epoch: 15880/20000, Loss: 0.00000496\n",
      "Epoch: 15890/20000, Loss: 0.00000067\n",
      "Epoch: 15900/20000, Loss: 0.00000050\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 15910/20000, Loss: 0.00000505\n",
      "Epoch: 15920/20000, Loss: 0.00009899\n",
      "Epoch: 15930/20000, Loss: 0.00001212\n",
      "Epoch: 15940/20000, Loss: 0.00000930\n",
      "Epoch: 15950/20000, Loss: 0.00000361\n",
      "Epoch: 15960/20000, Loss: 0.00000536\n",
      "Epoch: 15970/20000, Loss: 0.00000173\n",
      "Epoch: 15980/20000, Loss: 0.00000158\n",
      "Epoch: 15990/20000, Loss: 0.00000099\n",
      "Epoch: 16000/20000, Loss: 0.00000267\n",
      "Epoch: 16010/20000, Loss: 0.00000594\n",
      "Epoch: 16020/20000, Loss: 0.00000045\n",
      "Epoch: 16030/20000, Loss: 0.00000246\n",
      "Epoch: 16040/20000, Loss: 0.00000524\n",
      "Epoch: 16050/20000, Loss: 0.00000618\n",
      "Epoch: 16060/20000, Loss: 0.00000914\n",
      "Epoch: 16070/20000, Loss: 0.00001223\n",
      "Epoch: 16080/20000, Loss: 0.00002341\n",
      "Epoch: 16090/20000, Loss: 0.00000624\n",
      "Epoch: 16100/20000, Loss: 0.00000129\n",
      "Epoch: 16110/20000, Loss: 0.00000189\n",
      "Epoch: 16120/20000, Loss: 0.00000118\n",
      "Epoch: 16130/20000, Loss: 0.00000202\n",
      "Epoch: 16140/20000, Loss: 0.00002027\n",
      "Epoch: 16150/20000, Loss: 0.00002599\n",
      "Epoch: 16160/20000, Loss: 0.00002334\n",
      "Epoch: 16170/20000, Loss: 0.00001302\n",
      "Epoch: 16180/20000, Loss: 0.00000297\n",
      "Epoch: 16190/20000, Loss: 0.00000159\n",
      "Epoch: 16200/20000, Loss: 0.00000136\n",
      "Epoch: 16210/20000, Loss: 0.00000400\n",
      "Epoch: 16220/20000, Loss: 0.00001662\n",
      "Epoch: 16230/20000, Loss: 0.00000129\n",
      "Epoch: 16240/20000, Loss: 0.00000441\n",
      "Epoch: 16250/20000, Loss: 0.00000558\n",
      "Epoch: 16260/20000, Loss: 0.00000179\n",
      "Epoch: 16270/20000, Loss: 0.00000301\n",
      "Epoch: 16280/20000, Loss: 0.00001756\n",
      "Epoch: 16290/20000, Loss: 0.00002032\n",
      "Epoch: 16300/20000, Loss: 0.00001138\n",
      "Epoch: 16310/20000, Loss: 0.00000284\n",
      "Epoch: 16320/20000, Loss: 0.00000253\n",
      "Epoch: 16330/20000, Loss: 0.00000298\n",
      "Epoch: 16340/20000, Loss: 0.00000908\n",
      "Epoch: 16350/20000, Loss: 0.00001182\n",
      "Epoch: 16360/20000, Loss: 0.00000137\n",
      "Epoch: 16370/20000, Loss: 0.00000182\n",
      "Epoch: 16380/20000, Loss: 0.00000690\n",
      "Epoch: 16390/20000, Loss: 0.00002946\n",
      "Epoch: 16400/20000, Loss: 0.00004631\n",
      "Epoch: 16410/20000, Loss: 0.00000848\n",
      "Epoch: 16420/20000, Loss: 0.00000637\n",
      "Epoch: 16430/20000, Loss: 0.00001729\n",
      "Epoch: 16440/20000, Loss: 0.00000304\n",
      "Epoch: 16450/20000, Loss: 0.00000249\n",
      "Epoch: 16460/20000, Loss: 0.00000107\n",
      "Epoch: 16470/20000, Loss: 0.00000200\n",
      "Epoch: 16480/20000, Loss: 0.00000656\n",
      "Epoch: 16490/20000, Loss: 0.00000899\n",
      "Epoch: 16500/20000, Loss: 0.00000215\n",
      "Epoch: 16510/20000, Loss: 0.00000059\n",
      "Epoch: 16520/20000, Loss: 0.00000104\n",
      "Epoch: 16530/20000, Loss: 0.00001657\n",
      "Epoch: 16540/20000, Loss: 0.00003951\n",
      "Epoch: 16550/20000, Loss: 0.00000843\n",
      "Epoch: 16560/20000, Loss: 0.00000539\n",
      "Epoch: 16570/20000, Loss: 0.00000776\n",
      "Epoch: 16580/20000, Loss: 0.00000232\n",
      "Epoch: 16590/20000, Loss: 0.00000105\n",
      "Epoch: 16600/20000, Loss: 0.00000093\n",
      "Epoch: 16610/20000, Loss: 0.00000072\n",
      "Epoch: 16620/20000, Loss: 0.00000045\n",
      "Epoch: 16630/20000, Loss: 0.00000037\n",
      "Epoch: 16640/20000, Loss: 0.00000157\n",
      "Epoch: 16650/20000, Loss: 0.00005244\n",
      "Epoch: 16660/20000, Loss: 0.00001912\n",
      "Epoch: 16670/20000, Loss: 0.00000968\n",
      "Epoch: 16680/20000, Loss: 0.00000734\n",
      "Epoch: 16690/20000, Loss: 0.00000754\n",
      "Epoch: 16700/20000, Loss: 0.00000263\n",
      "Epoch: 16710/20000, Loss: 0.00000114\n",
      "Epoch: 16720/20000, Loss: 0.00000047\n",
      "Epoch: 16730/20000, Loss: 0.00000065\n",
      "Epoch: 16740/20000, Loss: 0.00000131\n",
      "Epoch: 16750/20000, Loss: 0.00001380\n",
      "Epoch: 16760/20000, Loss: 0.00000442\n",
      "Epoch: 16770/20000, Loss: 0.00000293\n",
      "Epoch: 16780/20000, Loss: 0.00000209\n",
      "Epoch: 16790/20000, Loss: 0.00000217\n",
      "Epoch: 16800/20000, Loss: 0.00000860\n",
      "Epoch: 16810/20000, Loss: 0.00003179\n",
      "Epoch: 16820/20000, Loss: 0.00002177\n",
      "Epoch: 16830/20000, Loss: 0.00000326\n",
      "Epoch: 16840/20000, Loss: 0.00000141\n",
      "Epoch: 16850/20000, Loss: 0.00000151\n",
      "Epoch: 16860/20000, Loss: 0.00000214\n",
      "Epoch: 16870/20000, Loss: 0.00000445\n",
      "Epoch: 16880/20000, Loss: 0.00001432\n",
      "Epoch: 16890/20000, Loss: 0.00000769\n",
      "Epoch: 16900/20000, Loss: 0.00000124\n",
      "Epoch: 16910/20000, Loss: 0.00000395\n",
      "Epoch: 16920/20000, Loss: 0.00000474\n",
      "Epoch: 16930/20000, Loss: 0.00001325\n",
      "Epoch: 16940/20000, Loss: 0.00005448\n",
      "Epoch: 16950/20000, Loss: 0.00001853\n",
      "Epoch: 16960/20000, Loss: 0.00000440\n",
      "Epoch: 16970/20000, Loss: 0.00000325\n",
      "Epoch: 16980/20000, Loss: 0.00000089\n",
      "Epoch: 16990/20000, Loss: 0.00000075\n",
      "Epoch: 17000/20000, Loss: 0.00000048\n",
      "Epoch: 17010/20000, Loss: 0.00000143\n",
      "Epoch: 17020/20000, Loss: 0.00001913\n",
      "Epoch: 17030/20000, Loss: 0.00000087\n",
      "Epoch: 17040/20000, Loss: 0.00000179\n",
      "Epoch: 17050/20000, Loss: 0.00000094\n",
      "Epoch: 17060/20000, Loss: 0.00000202\n",
      "Epoch: 17070/20000, Loss: 0.00000534\n",
      "Epoch: 17080/20000, Loss: 0.00001797\n",
      "Epoch: 17090/20000, Loss: 0.00001388\n",
      "Epoch: 17100/20000, Loss: 0.00001616\n",
      "Epoch: 17110/20000, Loss: 0.00000516\n",
      "Epoch: 17120/20000, Loss: 0.00000320\n",
      "Epoch: 17130/20000, Loss: 0.00000175\n",
      "Epoch: 17140/20000, Loss: 0.00000045\n",
      "Epoch: 17150/20000, Loss: 0.00000059\n",
      "Epoch: 17160/20000, Loss: 0.00000065\n",
      "Epoch: 17170/20000, Loss: 0.00000608\n",
      "Epoch: 17180/20000, Loss: 0.00004619\n",
      "Epoch: 17190/20000, Loss: 0.00000769\n",
      "Epoch: 17200/20000, Loss: 0.00002811\n",
      "Epoch: 17210/20000, Loss: 0.00000896\n",
      "Epoch: 17220/20000, Loss: 0.00000393\n",
      "Epoch: 17230/20000, Loss: 0.00000138\n",
      "Epoch: 17240/20000, Loss: 0.00000035\n",
      "Epoch: 17250/20000, Loss: 0.00000055\n",
      "Epoch: 17260/20000, Loss: 0.00000040\n",
      "Epoch: 17270/20000, Loss: 0.00000152\n",
      "Epoch: 17280/20000, Loss: 0.00003804\n",
      "Epoch: 17290/20000, Loss: 0.00002592\n",
      "Epoch: 17300/20000, Loss: 0.00001467\n",
      "Epoch: 17310/20000, Loss: 0.00000437\n",
      "Epoch: 17320/20000, Loss: 0.00000180\n",
      "Epoch: 17330/20000, Loss: 0.00000061\n",
      "Epoch: 17340/20000, Loss: 0.00000070\n",
      "Epoch: 17350/20000, Loss: 0.00000290\n",
      "Epoch: 17360/20000, Loss: 0.00002033\n",
      "Epoch: 17370/20000, Loss: 0.00000399\n",
      "Epoch: 17380/20000, Loss: 0.00000085\n",
      "Epoch: 17390/20000, Loss: 0.00000167\n",
      "Epoch: 17400/20000, Loss: 0.00000059\n",
      "Epoch: 17410/20000, Loss: 0.00000037\n",
      "Epoch: 17420/20000, Loss: 0.00000076\n",
      "Epoch: 17430/20000, Loss: 0.00003912\n",
      "Epoch: 17440/20000, Loss: 0.00018183\n",
      "Epoch: 17450/20000, Loss: 0.00004524\n",
      "Epoch: 17460/20000, Loss: 0.00001579\n",
      "Epoch: 17470/20000, Loss: 0.00000792\n",
      "Epoch: 17480/20000, Loss: 0.00000589\n",
      "Epoch: 17490/20000, Loss: 0.00000297\n",
      "Epoch: 17500/20000, Loss: 0.00000133\n",
      "Epoch: 17510/20000, Loss: 0.00000070\n",
      "Epoch: 17520/20000, Loss: 0.00000350\n",
      "Epoch: 17530/20000, Loss: 0.00000112\n",
      "Epoch: 17540/20000, Loss: 0.00000247\n",
      "Epoch: 17550/20000, Loss: 0.00000054\n",
      "Epoch: 17560/20000, Loss: 0.00000074\n",
      "Epoch: 17570/20000, Loss: 0.00000050\n",
      "Epoch: 17580/20000, Loss: 0.00000045\n",
      "Epoch: 17590/20000, Loss: 0.00000042\n",
      "Epoch: 17600/20000, Loss: 0.00000040\n",
      "Epoch: 17610/20000, Loss: 0.00000346\n",
      "Epoch: 17620/20000, Loss: 0.00001255\n",
      "Epoch: 17630/20000, Loss: 0.00000226\n",
      "Epoch: 17640/20000, Loss: 0.00000142\n",
      "Epoch: 17650/20000, Loss: 0.00000193\n",
      "Epoch: 17660/20000, Loss: 0.00000712\n",
      "Epoch: 17670/20000, Loss: 0.00000603\n",
      "Epoch: 17680/20000, Loss: 0.00000130\n",
      "Epoch: 17690/20000, Loss: 0.00000293\n",
      "Epoch: 17700/20000, Loss: 0.00000258\n",
      "Epoch: 17710/20000, Loss: 0.00000435\n",
      "Epoch: 17720/20000, Loss: 0.00001323\n",
      "Epoch: 17730/20000, Loss: 0.00000850\n",
      "Epoch: 17740/20000, Loss: 0.00000150\n",
      "Epoch: 17750/20000, Loss: 0.00000344\n",
      "Epoch: 17760/20000, Loss: 0.00000164\n",
      "Epoch: 17770/20000, Loss: 0.00000476\n",
      "Epoch: 17780/20000, Loss: 0.00003572\n",
      "Epoch: 17790/20000, Loss: 0.00001875\n",
      "Epoch: 17800/20000, Loss: 0.00000365\n",
      "Epoch: 17810/20000, Loss: 0.00000511\n",
      "Epoch: 17820/20000, Loss: 0.00000063\n",
      "Epoch: 17830/20000, Loss: 0.00000117\n",
      "Epoch: 17840/20000, Loss: 0.00000225\n",
      "Epoch: 17850/20000, Loss: 0.00000766\n",
      "Epoch: 17860/20000, Loss: 0.00000101\n",
      "Epoch: 17870/20000, Loss: 0.00000170\n",
      "Epoch: 17880/20000, Loss: 0.00000235\n",
      "Epoch: 17890/20000, Loss: 0.00000557\n",
      "Epoch: 17900/20000, Loss: 0.00002368\n",
      "Epoch: 17910/20000, Loss: 0.00000241\n",
      "Epoch: 17920/20000, Loss: 0.00000716\n",
      "Epoch: 17930/20000, Loss: 0.00000846\n",
      "Epoch: 17940/20000, Loss: 0.00000331\n",
      "Epoch: 17950/20000, Loss: 0.00000134\n",
      "Epoch: 17960/20000, Loss: 0.00000123\n",
      "Epoch: 17970/20000, Loss: 0.00000393\n",
      "Epoch: 17980/20000, Loss: 0.00003138\n",
      "Epoch: 17990/20000, Loss: 0.00000077\n",
      "Epoch: 18000/20000, Loss: 0.00000302\n",
      "Epoch: 18010/20000, Loss: 0.00000277\n",
      "Epoch: 18020/20000, Loss: 0.00000117\n",
      "Epoch: 18030/20000, Loss: 0.00000042\n",
      "Epoch: 18040/20000, Loss: 0.00000045\n",
      "Epoch: 18050/20000, Loss: 0.00000102\n",
      "Epoch: 18060/20000, Loss: 0.00002450\n",
      "Epoch: 18070/20000, Loss: 0.00010863\n",
      "Epoch: 18080/20000, Loss: 0.00003932\n",
      "Epoch: 18090/20000, Loss: 0.00000352\n",
      "Epoch: 18100/20000, Loss: 0.00000347\n",
      "Epoch: 18110/20000, Loss: 0.00000106\n",
      "Epoch: 18120/20000, Loss: 0.00000093\n",
      "Epoch: 18130/20000, Loss: 0.00000043\n",
      "Epoch: 18140/20000, Loss: 0.00000035\n",
      "Epoch: 18150/20000, Loss: 0.00000029\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 18160/20000, Loss: 0.00000028\n",
      "Epoch: 18170/20000, Loss: 0.00000026\n",
      "Epoch: 18180/20000, Loss: 0.00000026\n",
      "Epoch: 18190/20000, Loss: 0.00000057\n",
      "Epoch: 18200/20000, Loss: 0.00002730\n",
      "Epoch: 18210/20000, Loss: 0.00003198\n",
      "Epoch: 18220/20000, Loss: 0.00001240\n",
      "Epoch: 18230/20000, Loss: 0.00000322\n",
      "Epoch: 18240/20000, Loss: 0.00000165\n",
      "Epoch: 18250/20000, Loss: 0.00000048\n",
      "Epoch: 18260/20000, Loss: 0.00000054\n",
      "Epoch: 18270/20000, Loss: 0.00000037\n",
      "Epoch: 18280/20000, Loss: 0.00000085\n",
      "Epoch: 18290/20000, Loss: 0.00002549\n",
      "Epoch: 18300/20000, Loss: 0.00000893\n",
      "Epoch: 18310/20000, Loss: 0.00002186\n",
      "Epoch: 18320/20000, Loss: 0.00000616\n",
      "Epoch: 18330/20000, Loss: 0.00000391\n",
      "Epoch: 18340/20000, Loss: 0.00000159\n",
      "Epoch: 18350/20000, Loss: 0.00000056\n",
      "Epoch: 18360/20000, Loss: 0.00000036\n",
      "Epoch: 18370/20000, Loss: 0.00000039\n",
      "Epoch: 18380/20000, Loss: 0.00000036\n",
      "Epoch: 18390/20000, Loss: 0.00000203\n",
      "Epoch: 18400/20000, Loss: 0.00003263\n",
      "Epoch: 18410/20000, Loss: 0.00002343\n",
      "Epoch: 18420/20000, Loss: 0.00001120\n",
      "Epoch: 18430/20000, Loss: 0.00000307\n",
      "Epoch: 18440/20000, Loss: 0.00000143\n",
      "Epoch: 18450/20000, Loss: 0.00000053\n",
      "Epoch: 18460/20000, Loss: 0.00000049\n",
      "Epoch: 18470/20000, Loss: 0.00000042\n",
      "Epoch: 18480/20000, Loss: 0.00000548\n",
      "Epoch: 18490/20000, Loss: 0.00003002\n",
      "Epoch: 18500/20000, Loss: 0.00000753\n",
      "Epoch: 18510/20000, Loss: 0.00000421\n",
      "Epoch: 18520/20000, Loss: 0.00000254\n",
      "Epoch: 18530/20000, Loss: 0.00000080\n",
      "Epoch: 18540/20000, Loss: 0.00000074\n",
      "Epoch: 18550/20000, Loss: 0.00000047\n",
      "Epoch: 18560/20000, Loss: 0.00000181\n",
      "Epoch: 18570/20000, Loss: 0.00003224\n",
      "Epoch: 18580/20000, Loss: 0.00001600\n",
      "Epoch: 18590/20000, Loss: 0.00000745\n",
      "Epoch: 18600/20000, Loss: 0.00000236\n",
      "Epoch: 18610/20000, Loss: 0.00000099\n",
      "Epoch: 18620/20000, Loss: 0.00000129\n",
      "Epoch: 18630/20000, Loss: 0.00001837\n",
      "Epoch: 18640/20000, Loss: 0.00000120\n",
      "Epoch: 18650/20000, Loss: 0.00000209\n",
      "Epoch: 18660/20000, Loss: 0.00000107\n",
      "Epoch: 18670/20000, Loss: 0.00000131\n",
      "Epoch: 18680/20000, Loss: 0.00000180\n",
      "Epoch: 18690/20000, Loss: 0.00001037\n",
      "Epoch: 18700/20000, Loss: 0.00004122\n",
      "Epoch: 18710/20000, Loss: 0.00001841\n",
      "Epoch: 18720/20000, Loss: 0.00001367\n",
      "Epoch: 18730/20000, Loss: 0.00000254\n",
      "Epoch: 18740/20000, Loss: 0.00000148\n",
      "Epoch: 18750/20000, Loss: 0.00000051\n",
      "Epoch: 18760/20000, Loss: 0.00000053\n",
      "Epoch: 18770/20000, Loss: 0.00000028\n",
      "Epoch: 18780/20000, Loss: 0.00000026\n",
      "Epoch: 18790/20000, Loss: 0.00000040\n",
      "Epoch: 18800/20000, Loss: 0.00000722\n",
      "Epoch: 18810/20000, Loss: 0.00010119\n",
      "Epoch: 18820/20000, Loss: 0.00001781\n",
      "Epoch: 18830/20000, Loss: 0.00000545\n",
      "Epoch: 18840/20000, Loss: 0.00000361\n",
      "Epoch: 18850/20000, Loss: 0.00000165\n",
      "Epoch: 18860/20000, Loss: 0.00000074\n",
      "Epoch: 18870/20000, Loss: 0.00000046\n",
      "Epoch: 18880/20000, Loss: 0.00000037\n",
      "Epoch: 18890/20000, Loss: 0.00000029\n",
      "Epoch: 18900/20000, Loss: 0.00000027\n",
      "Epoch: 18910/20000, Loss: 0.00000026\n",
      "Epoch: 18920/20000, Loss: 0.00000045\n",
      "Epoch: 18930/20000, Loss: 0.00000890\n",
      "Epoch: 18940/20000, Loss: 0.00007425\n",
      "Epoch: 18950/20000, Loss: 0.00001472\n",
      "Epoch: 18960/20000, Loss: 0.00001235\n",
      "Epoch: 18970/20000, Loss: 0.00000408\n",
      "Epoch: 18980/20000, Loss: 0.00000139\n",
      "Epoch: 18990/20000, Loss: 0.00000075\n",
      "Epoch: 19000/20000, Loss: 0.00000044\n",
      "Epoch: 19010/20000, Loss: 0.00000034\n",
      "Epoch: 19020/20000, Loss: 0.00000031\n",
      "Epoch: 19030/20000, Loss: 0.00000028\n",
      "Epoch: 19040/20000, Loss: 0.00000053\n",
      "Epoch: 19050/20000, Loss: 0.00001869\n",
      "Epoch: 19060/20000, Loss: 0.00001059\n",
      "Epoch: 19070/20000, Loss: 0.00000473\n",
      "Epoch: 19080/20000, Loss: 0.00000283\n",
      "Epoch: 19090/20000, Loss: 0.00000032\n",
      "Epoch: 19100/20000, Loss: 0.00000102\n",
      "Epoch: 19110/20000, Loss: 0.00000281\n",
      "Epoch: 19120/20000, Loss: 0.00000915\n",
      "Epoch: 19130/20000, Loss: 0.00000479\n",
      "Epoch: 19140/20000, Loss: 0.00000175\n",
      "Epoch: 19150/20000, Loss: 0.00000439\n",
      "Epoch: 19160/20000, Loss: 0.00002349\n",
      "Epoch: 19170/20000, Loss: 0.00000336\n",
      "Epoch: 19180/20000, Loss: 0.00004141\n",
      "Epoch: 19190/20000, Loss: 0.00001020\n",
      "Epoch: 19200/20000, Loss: 0.00000806\n",
      "Epoch: 19210/20000, Loss: 0.00000361\n",
      "Epoch: 19220/20000, Loss: 0.00000129\n",
      "Epoch: 19230/20000, Loss: 0.00000066\n",
      "Epoch: 19240/20000, Loss: 0.00000046\n",
      "Epoch: 19250/20000, Loss: 0.00000026\n",
      "Epoch: 19260/20000, Loss: 0.00000027\n",
      "Epoch: 19270/20000, Loss: 0.00000169\n",
      "Epoch: 19280/20000, Loss: 0.00002952\n",
      "Epoch: 19290/20000, Loss: 0.00000602\n",
      "Epoch: 19300/20000, Loss: 0.00001591\n",
      "Epoch: 19310/20000, Loss: 0.00000151\n",
      "Epoch: 19320/20000, Loss: 0.00000106\n",
      "Epoch: 19330/20000, Loss: 0.00000108\n",
      "Epoch: 19340/20000, Loss: 0.00000064\n",
      "Epoch: 19350/20000, Loss: 0.00000043\n",
      "Epoch: 19360/20000, Loss: 0.00000046\n",
      "Epoch: 19370/20000, Loss: 0.00000562\n",
      "Epoch: 19380/20000, Loss: 0.00006266\n",
      "Epoch: 19390/20000, Loss: 0.00001246\n",
      "Epoch: 19400/20000, Loss: 0.00000389\n",
      "Epoch: 19410/20000, Loss: 0.00000209\n",
      "Epoch: 19420/20000, Loss: 0.00000068\n",
      "Epoch: 19430/20000, Loss: 0.00000061\n",
      "Epoch: 19440/20000, Loss: 0.00000050\n",
      "Epoch: 19450/20000, Loss: 0.00000342\n",
      "Epoch: 19460/20000, Loss: 0.00001991\n",
      "Epoch: 19470/20000, Loss: 0.00000191\n",
      "Epoch: 19480/20000, Loss: 0.00001105\n",
      "Epoch: 19490/20000, Loss: 0.00000523\n",
      "Epoch: 19500/20000, Loss: 0.00000376\n",
      "Epoch: 19510/20000, Loss: 0.00000040\n",
      "Epoch: 19520/20000, Loss: 0.00000131\n",
      "Epoch: 19530/20000, Loss: 0.00000147\n",
      "Epoch: 19540/20000, Loss: 0.00000734\n",
      "Epoch: 19550/20000, Loss: 0.00003828\n",
      "Epoch: 19560/20000, Loss: 0.00001536\n",
      "Epoch: 19570/20000, Loss: 0.00000579\n",
      "Epoch: 19580/20000, Loss: 0.00001620\n",
      "Epoch: 19590/20000, Loss: 0.00000400\n",
      "Epoch: 19600/20000, Loss: 0.00000084\n",
      "Epoch: 19610/20000, Loss: 0.00000068\n",
      "Epoch: 19620/20000, Loss: 0.00000042\n",
      "Epoch: 19630/20000, Loss: 0.00000181\n",
      "Epoch: 19640/20000, Loss: 0.00001829\n",
      "Epoch: 19650/20000, Loss: 0.00000422\n",
      "Epoch: 19660/20000, Loss: 0.00000149\n",
      "Epoch: 19670/20000, Loss: 0.00001755\n",
      "Epoch: 19680/20000, Loss: 0.00000405\n",
      "Epoch: 19690/20000, Loss: 0.00000236\n",
      "Epoch: 19700/20000, Loss: 0.00000086\n",
      "Epoch: 19710/20000, Loss: 0.00000028\n",
      "Epoch: 19720/20000, Loss: 0.00000023\n",
      "Epoch: 19730/20000, Loss: 0.00000025\n",
      "Epoch: 19740/20000, Loss: 0.00000061\n",
      "Epoch: 19750/20000, Loss: 0.00008781\n",
      "Epoch: 19760/20000, Loss: 0.00767913\n",
      "Epoch: 19770/20000, Loss: 0.00300381\n",
      "Epoch: 19780/20000, Loss: 0.00113735\n",
      "Epoch: 19790/20000, Loss: 0.00054968\n",
      "Epoch: 19800/20000, Loss: 0.00060995\n",
      "Epoch: 19810/20000, Loss: 0.00038702\n",
      "Epoch: 19820/20000, Loss: 0.00017266\n",
      "Epoch: 19830/20000, Loss: 0.00015826\n",
      "Epoch: 19840/20000, Loss: 0.00013115\n",
      "Epoch: 19850/20000, Loss: 0.00017552\n",
      "Epoch: 19860/20000, Loss: 0.00014812\n",
      "Epoch: 19870/20000, Loss: 0.00012094\n",
      "Epoch: 19880/20000, Loss: 0.00010319\n",
      "Epoch: 19890/20000, Loss: 0.00010169\n",
      "Epoch: 19900/20000, Loss: 0.00022515\n",
      "Epoch: 19910/20000, Loss: 0.00012894\n",
      "Epoch: 19920/20000, Loss: 0.00010076\n",
      "Epoch: 19930/20000, Loss: 0.00008810\n",
      "Epoch: 19940/20000, Loss: 0.00008253\n",
      "Epoch: 19950/20000, Loss: 0.00010144\n",
      "Epoch: 19960/20000, Loss: 0.00007799\n",
      "Epoch: 19970/20000, Loss: 0.00010777\n",
      "Epoch: 19980/20000, Loss: 0.00008666\n",
      "Epoch: 19990/20000, Loss: 0.00007275\n",
      "Epoch: 20000/20000, Loss: 0.00007350\n"
     ]
    }
   ],
   "source": [
    "# Create GRU instance\n",
    "gru = GRU(input_size, hidden_size, output_size)\n",
    "\n",
    "# Loss and optimizer\n",
    "criterion = nn.MSELoss()\n",
    "optimizer = torch.optim.Adam(gru.parameters(), lr=0.01)\n",
    "\n",
    "# Training loop\n",
    "for epoch in range(num_epochs):\n",
    "    # Set initial hidden state\n",
    "    hidden = torch.zeros(1, batch_size, hidden_size)\n",
    "\n",
    "    # Forward pass\n",
    "    output, hidden = gru(input_tensor, hidden)\n",
    "    loss = criterion(output, target_tensor)\n",
    "\n",
    "    # Backward and optimize\n",
    "    optimizer.zero_grad()\n",
    "    loss.backward()\n",
    "    optimizer.step()\n",
    "\n",
    "    # Print progress\n",
    "    if (epoch+1) % 10 == 0:\n",
    "        print(f'Epoch: {epoch+1}/{num_epochs}, Loss: {loss.item():.8f}')\n",
    "\n",
    "\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "302b5fa0",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "torch.Size([1, 1, 201])\n",
      "torch.Size([1, 20, 201])\n"
     ]
    }
   ],
   "source": [
    "print(test_tensor.shape)\n",
    "prediction_tensor = torch.zeros(1, 20, 201).float()\n",
    "print(prediction_tensor.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "09f78c1d",
   "metadata": {},
   "outputs": [],
   "source": [
    "with torch.no_grad():\n",
    "    hidden_pred = torch.zeros(1, batch_size, hidden_size)\n",
    "    prediction, _ = gru(test_tensor, hidden_pred)\n",
    "    prediction = prediction.view(1, 1, 201).float()\n",
    "    prediction_tensor[:, 0, :] = prediction\n",
    "    for i in range(19):\n",
    "        hidden_pred = torch.zeros(1, batch_size, hidden_size)\n",
    "        prediction, _ = gru(prediction, hidden_pred)\n",
    "        prediction = prediction.view(1, 1, 201).float()\n",
    "        prediction_tensor[:, i+1, :] = prediction"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "879b8ce1",
   "metadata": {},
   "outputs": [],
   "source": [
    "# exact\n",
    "u_test = u\n",
    "u_test_full = u_test[80:100, :]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "324eebba",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "torch.Size([20, 201])"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "\n",
    "k1 = (prediction_tensor - u_test_full)**2\n",
    "u_test_full_tensor = torch.tensor(u_test_full**2)\n",
    "u_test_full_tensor.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "c4960438",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Relative Error Test:  0.009314086302490355 %\n"
     ]
    }
   ],
   "source": [
    "# Compute the relative L2 error norm (generalization error)\n",
    "relative_error_test = torch.mean(k1)/ torch.mean(u_test_full_tensor)\n",
    "\n",
    "print(\"Relative Error Test: \", relative_error_test.item(), \"%\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "d95ba111",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "tensor(0.1763, dtype=torch.float64)"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "R_abs = torch.max(prediction-u_test_full)\n",
    "R_abs"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "198aa787",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "tensor(0.0508, dtype=torch.float64)"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "R_mean = torch.mean(torch.abs(prediction - u_test_full))\n",
    "R_mean"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "7d3966a6",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Explained Variance Score: 0.9919727059841501\n"
     ]
    }
   ],
   "source": [
    "import torch\n",
    "\n",
    "a = prediction\n",
    "b = u_test_full\n",
    "# Assuming 'a' is your predicted values (model's predictions) and 'b' is the true values (ground truth)\n",
    "# Make sure 'a' and 'b' are PyTorch tensors\n",
    "b = torch.tensor(b)\n",
    "# Calculate the mean of 'b'\n",
    "mean_b = torch.mean(b)\n",
    "\n",
    "# Calculate the Explained Variance Score\n",
    "numerator = torch.var(b - a)  # Variance of the differences between 'b' and 'a'\n",
    "denominator = torch.var(b)    # Variance of 'b'\n",
    "evs = 1 - numerator / denominator\n",
    "\n",
    "print(\"Explained Variance Score:\", evs.item())\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "6251bfea",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "torch.Size([20, 201])"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "prediction_tensor = torch.squeeze(prediction_tensor)\n",
    "prediction_tensor.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "5f5de2e0",
   "metadata": {},
   "outputs": [],
   "source": [
    "conc_u = torch.squeeze(input_tensor)\n",
    "prediction_tensor = torch.squeeze(prediction_tensor)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "5f3b7a32",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "torch.Size([100, 201])"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "concatenated_tensor = torch.cat((conc_u, prediction_tensor), dim=0)\n",
    "\n",
    "concatenated_tensor.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "339e5891",
   "metadata": {},
   "outputs": [],
   "source": [
    "t1 = np.linspace(0, 1 , 100)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "159c6d5b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 360x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "import torch\n",
    "\n",
    "# Create the figure and axis objects with reduced width\n",
    "fig, ax = plt.subplots(figsize=(5, 5))  # You can adjust the width (7 inches) and height (5 inches) as needed\n",
    "\n",
    "# # Make sure the font is Times Roman\n",
    "# plt.rcParams['font.family'] = 'Times New Roman'\n",
    "\n",
    "# # Perform the prediction\n",
    "# with torch.no_grad():\n",
    "#     prediction = lem(test_tensor)\n",
    "\n",
    "final_time_output = prediction_tensor[-2, :]\n",
    "final_out = final_time_output.detach().numpy().reshape(-1, 1)\n",
    "final_true = u[-2, :].reshape(-1, 1)\n",
    "\n",
    "# Plot the data with red and blue lines, one with dotted and one with solid style\n",
    "ax.plot(x.T, final_out, color='red', linestyle='dotted', linewidth=12, label='Prediction')\n",
    "ax.plot(x.T, final_true, color='blue', linestyle='solid', linewidth=7, label='True')\n",
    "\n",
    "# Set the axis labels with bold font weight\n",
    "ax.set_xlabel(r\"${x}$\", fontsize=26, color='black', fontdict={'weight': 'bold'})\n",
    "ax.set_ylabel(r\"${u(x, t)}$\", fontsize=26, color='black', fontdict={'weight': 'bold'})\n",
    "\n",
    "# Set the title with bold font weight\n",
    "ax.set_title(r\"${t = 0.99}$\", fontsize=26, color='black', fontweight='bold')\n",
    "\n",
    "# Set the number of ticks for x-axis and y-axis to 3\n",
    "ax.set_xticks([-1, 0, 1])\n",
    "ax.set_yticks([-1, 0, 1])\n",
    "\n",
    "# Set tick labels fontweight to bold and increase font size\n",
    "ax.tick_params(axis='both', which='major', labelsize=20, width=2, length=10)\n",
    "\n",
    "# # Set the fontweight for tick labels to bold\n",
    "# for tick in ax.get_xticklabels() + ax.get_yticklabels():\n",
    "#     tick.set_weight('bold')\n",
    "\n",
    "# Set the spines linewidth to bold\n",
    "ax.spines['top'].set_linewidth(2)\n",
    "ax.spines['right'].set_linewidth(2)\n",
    "ax.spines['bottom'].set_linewidth(2)\n",
    "ax.spines['left'].set_linewidth(2)\n",
    "\n",
    "\n",
    "# Increase font size for x and y axis numbers\n",
    "ax.tick_params(axis='both', which='major', labelsize=24)\n",
    "\n",
    "# Set the legend\n",
    "# ax.legend()\n",
    "\n",
    "plt.savefig('GRU_0.99_20.pdf', dpi=500, bbox_inches=\"tight\")\n",
    "\n",
    "# Show the plot\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "id": "6f25b2b9",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 360x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "import torch\n",
    "\n",
    "# Create the figure and axis objects with reduced width\n",
    "fig, ax = plt.subplots(figsize=(5, 5))  # You can adjust the width (7 inches) and height (5 inches) as needed\n",
    "\n",
    "\n",
    "\n",
    "final_time_output = prediction_tensor[-20, :]\n",
    "final_out = final_time_output.detach().numpy().reshape(-1, 1)\n",
    "final_true = u[-20, :].reshape(-1, 1)\n",
    "\n",
    "# Plot the data with red and blue lines, one with dotted and one with solid style\n",
    "ax.plot(x.T, final_out, color='red', linestyle='dotted', linewidth=12, label='Prediction')\n",
    "ax.plot(x.T, final_true, color='blue', linestyle='solid', linewidth=7, label='True')\n",
    "\n",
    "# Set the axis labels with bold font weight\n",
    "ax.set_xlabel(r\"${x}$\", fontsize=26, color='black', fontdict={'weight': 'bold'})\n",
    "ax.set_ylabel(r\"${u(x, t)}$\", fontsize=26, color='black', fontdict={'weight': 'bold'})\n",
    "\n",
    "# Set the title with bold font weight\n",
    "ax.set_title(r\"${t = 0.81}$\", fontsize=26, color='black', fontweight='bold')\n",
    "\n",
    "# Set the number of ticks for x-axis and y-axis to 3\n",
    "ax.set_xticks([-1, 0, 1])\n",
    "ax.set_yticks([-1, 0, 1])\n",
    "\n",
    "# Set tick labels fontweight to bold and increase font size\n",
    "ax.tick_params(axis='both', which='major', labelsize=20, width=2, length=10)\n",
    "\n",
    "# # Set the fontweight for tick labels to bold\n",
    "# for tick in ax.get_xticklabels() + ax.get_yticklabels():\n",
    "#     tick.set_weight('bold')\n",
    "\n",
    "# Set the spines linewidth to bold\n",
    "ax.spines['top'].set_linewidth(2)\n",
    "ax.spines['right'].set_linewidth(2)\n",
    "ax.spines['bottom'].set_linewidth(2)\n",
    "ax.spines['left'].set_linewidth(2)\n",
    "\n",
    "# Set the legend\n",
    "# ax.legend()\n",
    "\n",
    "plt.savefig('GRU_0.81_20.pdf', dpi=500, bbox_inches=\"tight\")\n",
    "\n",
    "# Show the plot\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "1de0e48b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1440x360 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import torch\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from matplotlib.ticker import FixedLocator\n",
    "\n",
    "# Assuming you have defined concatenated_tensor as a PyTorch tensor\n",
    "# concatenated_tensor = torch.cat((tensor1, tensor2), dim=0)\n",
    "\n",
    "# Convert concatenated_tensor to a NumPy array\n",
    "concatenated_array = concatenated_tensor.numpy()\n",
    "\n",
    "# Define custom color levels\n",
    "x = np.linspace(-1, 1, concatenated_array.shape[1])  # Replace 0 and 1 with your actual x range\n",
    "t = np.linspace(0, 1, concatenated_array.shape[0])  # Replace 0 and 1 with your actual t range\n",
    "X, T = np.meshgrid(x, t1)\n",
    "\n",
    "# Define custom color levels using the minimum and maximum from the NumPy array\n",
    "c_levels = np.linspace(np.min(concatenated_array), np.max(concatenated_array), 400)\n",
    "\n",
    "# Plot the contour with interpolated data\n",
    "plt.figure(figsize=(20, 5))\n",
    "plt.pcolormesh(T, X, concatenated_array, shading='auto', cmap='coolwarm')\n",
    "\n",
    "# Set the fontweight for axis labels to regular (not bold)\n",
    "plt.xlabel(\"$t$\", fontsize=26)\n",
    "plt.ylabel(\"$x$\", fontsize=26)\n",
    "plt.title(\"$u(x, t)$\", fontsize=26)\n",
    "\n",
    "# Set tick labels fontweight to regular (not bold) and increase font size\n",
    "plt.tick_params(axis='both', which='major', labelsize=20, width=3, length=10)\n",
    "\n",
    "# Set the fontweight for tick labels to regular (not bold)\n",
    "for tick in plt.gca().get_xticklabels() + plt.gca().get_yticklabels():\n",
    "    tick.set_weight('normal')\n",
    "\n",
    "# Set the number of ticks for x-axis and y-axis to 5\n",
    "num_ticks = 5\n",
    "x_ticks = np.linspace(np.min(T), np.max(T), num_ticks)\n",
    "y_ticks = np.linspace(np.min(X), np.max(X), num_ticks)\n",
    "\n",
    "plt.gca().xaxis.set_major_locator(FixedLocator(x_ticks))\n",
    "plt.gca().yaxis.set_major_locator(FixedLocator(y_ticks))\n",
    "\n",
    "cbar1 = plt.colorbar()\n",
    "# Set the number of ticks for the color bar with uniformly distributed numbers\n",
    "num_ticks = 5\n",
    "c_ticks = np.linspace(np.min(concatenated_array), np.max(concatenated_array), num_ticks)\n",
    "cbar1.set_ticks(c_ticks)\n",
    "\n",
    "# Set the fontweight and fontsize for color bar tick labels\n",
    "for t in cbar1.ax.get_yticklabels():\n",
    "    t.set_weight('normal')\n",
    "    t.set_fontsize(26)  # Increase the font size for color bar tick labels\n",
    "\n",
    "# Increase the size of numbers on axis and color bar\n",
    "plt.xticks(fontsize=26)\n",
    "plt.yticks(fontsize=26)\n",
    "\n",
    "# Increase the tick size and width of the color bar\n",
    "cbar1.ax.tick_params(axis='both', which='major', labelsize=30, width=3,  length=10)\n",
    "\n",
    "# Add a dotted line at t = 0.8\n",
    "plt.axvline(x=0.8, color='black', linestyle='dotted', linewidth=5)\n",
    "\n",
    "#plt.savefig('Contour_LEM_20.pdf', dpi=500, bbox_inches=\"tight\")\n",
    "plt.savefig('contour_GRU_20.jpeg', dpi=500, bbox_inches=\"tight\")\n",
    "# Show the plot\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "4902f893",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "43c8e411",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "e5425858",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "01ead432",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "f6cc6a89",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "8443d72e",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "f077c667",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "pytorch",
   "language": "python",
   "name": "pytorch"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.10"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
